第一步:安装mysql驱动
首先,您需要安装 go 的 mysql 驱动程序。一种流行的方法是 go-sql-driver/mysql。您可以使用以下方式安装它:
go get -u github.com/go-sql-driver/mysql
第 2 步:编写 go 代码
以下是如何连接到 mysql 数据库并查询数据的示例:
package main
import (
"database/sql"
"fmt"
"log"
_ "github.com/go-sql-driver/mysql"
)
func main() {
// Open the database connection
db, err := sql.Open("mysql", "username:password@tcp(127.0.0.1:3306)/dbname")
if err != nil {
log.Fatal(err)
}
defer db.Close()
// Ping the database to check if the connection is alive
if err := db.Ping(); err != nil {
log.Fatal(err)
}
// Define the query
query := "SELECT id, name FROM users WHERE active = ?"
active := true
// Execute the query
rows, err := db.Query(query, active)
if err != nil {
log.Fatal(err)
}
defer rows.Close()
// Iterate through the result set
for rows.Next() {
var id int
var name string
if err := rows.Scan(&id, &name); err != nil {
log.Fatal(err)
}
fmt.Printf("ID: %d, Name: %sn", id, name)
}
// Check for errors from iterating over rows
if err := rows.Err(); err != nil {
log.Fatal(err)
}
}
说明:
导入必要的包:导入用于数据库交互的database/sql包和mysql驱动程序(github.com/go-sql-driver/mysql)。
打开数据库连接:您可以使用 sql.open 打开与数据库的连接。连接字符串格式为 username:password@tcp(host:port)/dbname.
ping 数据库:ping 数据库以确保建立连接是一个很好的做法。
执行查询:您使用 db.query 执行查询。 query 方法返回一个 *sql.rows 对象,您可以迭代该对象来获取结果集。
迭代结果:您使用循环迭代行并将每一行扫描到变量中。
处理错误:您应该处理在执行查询或迭代期间发生的任何错误。
第 3 步:运行代码
确保将用户名、密码、127.0.0.1:3306 和 dbname 替换为您实际的 mysql 凭据和数据库详细信息。
运行你的go程序,它应该输出你的查询结果。
此示例可以通过相应更改驱动程序和连接字符串来适应其他数据库。