golang 操作 mysql

本篇文章介紹:database/sql。 它是golang 內建的,只提供一個sql操作的統一接口。不過要連結mysql需要安裝 mysql 的實現。

安裝需要的包:

go get -u github.com/go-sql-driver/mysql

程序中必須加載2個包:

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

database/sql 包 是golang官方提供的一個接口。 github.com/go-sql-driver/mysql 包 mysql 的對接口的實現。

_ "github.com/go-sql-driver/mysql" 表示只加载 “github.com/go-sql-driver/mysql” 包的 init。然后统一有 标准的 database/sql调用。

連結Mysql:

db, err := sql.Open("mysql", "root:xxx@/test_db?charset=utf8mb4")
if err != nil {
    panic(err)
}

defer db.Close()

defer db.Close() 当程序结束时,执行关闭mysql连接。

查詢&處理數據:

rows, err := db.Query("SELECT id, area FROM zip limit 3")
defer rows.Close()

for rows.Next() {
    var id int
    var area string

    if err := rows.Scan(&id, &area); err != nil {
        panic(err)
    }

    fmt.Printf("%d \t %s\n", id, area)
}

必须通过 rows.Scan() 读取到对应变量