package main
import (
"database/sql"
"fmt"
_ "github.com/go-sql-driver/mysql"
)
func main() {
// 建立数据库连接
db, err := sql.Open("mysql", "user:password@tcp(127.0.0.1:3306)/your_database_name")
if err != nil {
panic(err.Error())
}
defer db.Close()
// 测试数据库连接
err = db.Ping()
if err != nil {
panic(err.Error())
}
fmt.Println("Connected to the database!")
// 查询所有用户信息
rows, err := db.Query("SELECT id, name, age FROM users")
if err != nil {
panic(err.Error())
}
defer rows.Close()
// 遍历结果集
for rows.Next() {
var id int
var name string
var age int
err = rows.Scan(&id, &name, &age)
if err != nil {
panic(err.Error())
}
fmt.Printf("ID: %d, Name: %s, Age: %d\n", id, name, age)
}
// 检查遍历过程中的错误
err = rows.Err()
if err != nil {
panic(err.Error())
}
}
- 引入必要的包,包括
database/sql
用于数据库操作,fmt
用于格式化输出,以及MySQL驱动(这里使用github.com/go-sql-driver/mysql
,注意需要提前安装)。
- 使用
sql.Open
建立数据库连接,需要传入数据库驱动名和数据源名称(格式为user:password@tcp(127.0.0.1:3306)/your_database_name
,需替换为真实的用户名、密码和数据库名)。
- 使用
db.Ping
测试数据库连接是否成功。
- 使用
db.Query
执行SQL查询语句,获取结果集rows
。
- 使用
rows.Next
遍历结果集,通过rows.Scan
将每行数据扫描到对应的变量中。
- 最后,检查遍历过程中是否出现错误。