在Go语言中,查询MySQL数据库的一个常用库是database/sql
标准库
首先,确保你已经安装了MySQL驱动:
go get -u github.com/go-sql-driver/mysql
示例代码 main.go
package mainimport ("database/sql""fmt""log"_ "github.com/go-sql-driver/mysql" )func main() {// DSN (Data Source Name) 格式为:[username[:password]@][protocol[(address)]]/dbname[?param1=value1&...¶mN=valueN]dsn := "agent:agent@tcp(localhost:3306)/callcenter_db?parseTime=true&charset=utf8"// 打开数据库连接db, err := sql.Open("mysql", dsn)if err != nil {log.Fatal(err)}defer db.Close()// 测试数据库连接是否成功err = db.Ping()if err != nil {log.Fatal(err)}fmt.Println("Connected to MySQL database!")// 执行查询rows, err := db.Query("SELECT en_name, first_name FROM user")if err != nil {log.Fatal(err)}defer rows.Close()// 遍历查询结果for rows.Next() {var id sql.NullInt64var name stringif err := rows.Scan(&id, &name); err != nil {log.Fatal(err)}// 如果ID是NULL,则赋值为0if id.Valid == false { //Vailid 为false ,说明表中的值为NULLid.Int64 = 0}fmt.Printf("ID: %d, Name: %s\n", id, name)}// 检查遍历过程中是否有错误发生if err = rows.Err(); err != nil {log.Fatal(err)} }
连接字符串
dsn := "agent:agent@tcp(localhost:3306)/callcenter_db?parseTime=true&charset=utf8"
用户名 agent 密码 agent
注意 用户名 和 密码 之间 ,有个 : 符号
localhost 是IP 地址
3306 是mysql 端口号
callcenter_db 是数据库名称