Go语言实现连接MySql基础操作(go语言连接mysql数据库)

Go语言实现连接MySql基础操作(go语言连接mysql数据库)

编程文章jaq1232025-07-09 15:10:374A+A-

在 Go 中,可以使用 database/sql 包来连接和操作 MySQL 数据库。以下是一个简单的示例程序,它演示了如何连接 MySQL 数据库并执行查询操作:

package main

import (
    "database/sql"
    "fmt"
    _ "github.com/go-sql-driver/mysql"
)

func main() {
    // 连接数据库
    db, err := sql.Open("mysql", "user:password@tcp(hostname:port)/database")
    if err != nil {
        panic(err.Error())
    }
    defer db.Close()

    // 查询数据
    rows, err := db.Query("SELECT * FROM users WHERE age > ?", 18)
    if err != nil {
        panic(err.Error())
    }
    defer rows.Close()

    // 处理查询结果
    for rows.Next() {
        var id int
        var name string
        var age int
        if err := rows.Scan(&id, &name, &age); err != nil {
            panic(err.Error())
        }
        fmt.Printf("id: %d, name: %s, age: %d\n", id, name, age)
    }
    if err := rows.Err(); err != nil {
        panic(err.Error())
    }
}

在这个示例中,我们首先使用 sql.Open 函数连接 MySQL 数据库。该函数接受两个参数:MySQL 数据库的连接信息和驱动名称。连接信息包括用户名、密码、主机名、端口号和数据库名称。在这个示例中,我们使用 go-sql-driver/mysql 驱动来连接 MySQL 数据库。

然后,我们使用 db.Query 函数执行查询操作。该函数接受两个参数:查询语句和查询参数。在这个示例中,我们查询了名为 users 的表中所有年龄大于 18 岁的用户。

最后,我们使用 rows.Next 函数遍历查询结果,并使用 rows.Scan 函数将每行数据解析为 Go 中的变量。注意,我们需要在处理完查询结果后调用 rows.Err 函数来检查是否有任何错误发生。

需要注意的是,在实际应用中,需要正确处理连接池、事务和错误处理等问题。

以下是一个简单的示例程序,它演示了如何连接 MySQL 数据库并执行增删改操作:

package main

import (
    "database/sql"
    "fmt"
    _ "github.com/go-sql-driver/mysql"
)

func main() {
    // 连接数据库
    db, err := sql.Open("mysql", "user:password@tcp(hostname:port)/database")
    if err != nil {
        panic(err.Error())
    }
    defer db.Close()

    // 插入数据
    result, err := db.Exec("INSERT INTO users (name, age) VALUES (?, ?)", "Alice", 20)
    if err != nil {
        panic(err.Error())
    }
    fmt.Println("Rows affected:", result.RowsAffected())

    // 更新数据
    result, err = db.Exec("UPDATE users SET age = ? WHERE name = ?", 21, "Alice")
    if err != nil {
        panic(err.Error())
    }
    fmt.Println("Rows affected:", result.RowsAffected())

    // 删除数据
    result, err = db.Exec("DELETE FROM users WHERE age > ?", 18)
    if err != nil {
        panic(err.Error())
    }
    fmt.Println("Rows affected:", result.RowsAffected())
}

在这个示例中,我们首先使用 sql.Open 函数连接 MySQL 数据库。然后,我们使用 db.Exec 函数执行 SQL 语句来进行增删改操作。

对于插入操作,我们使用 INSERT INTO 语句,并使用 ? 占位符来代替实际的值。db.Exec 函数返回一个 sql.Result 类型的结果,其中包含有关操作结果的信息,例如受影响的行数。

对于更新操作,我们使用 UPDATE 语句,并指定要更新的列和条件。在这个示例中,我们将名为 Alice 的用户的年龄更新为 21。

对于删除操作,我们使用 DELETE FROM 语句,并指定要删除的表和条件。在这个示例中,我们删除了所有年龄大于 18 岁的用户。

需要注意的是,在实际应用中,需要正确处理连接池、事务和错误处理等问题。同时,我们也可以使用 db.Prepare 函数来预处理 SQL 语句,以提高性能和安全性。

点击这里复制本文地址 以上内容由jaq123整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!

苍茫编程网 © All Rights Reserved.  蜀ICP备2024111239号-21