上篇文章关于golang database_sql 包讲述了 database/sql 的整体设计框架。
本文简要介绍go-sql-driver/mysql的调用关系,是如何与database/sql关联起来的,包括从驱动注册到具体查询,每个步骤的底层调用。
我们查询MySQL的大体代码demo如下:
package main
import (
"database/sql"
"log"
_ "github.com/go-sql-driver/mysql"
)
var DB *sql.DB
var dataBase = "root:Aa123456@tcp(127.0.0.1:3306)/?loc=Local&parseTime=true"
func main() {
var err error
DB, err = sql.Open("mysql", dataBase)
if err != nil {
log.Fatalln("open db fail:", err)
}
var connection_id int
err := DB.QueryRow("select CONNECTION_ID()").Scan(&connection_id)
if err != nil {
log.Println("query connection id failed:", err)
return
}