go-sql-driver
go get -u github.com/go-sql-driver/mysql
国内用户可以通过代理加快go类库下载
Go版本 >= 1.13, 推荐使用以下方式配置代理
go env -w GO111MODULE=on
go env -w GOPROXY="https://goproxy.io,direct"
建立连接池
用方法创建数据库链接池
sql.DBsql
package main
import (
"fmt"
"database/sql"
_ "github.com/go-sql-driver/mysql"
)
func main() {
pool, err := sql.Open("mysql", "username:password@tcp(127.0.0.1:3306)/test")
if err != nil {
panic(err.Error())
}
defer pool.Close()
}
添加数据
tasks
CREATE DATABASE IF NOT EXISTS test;
use test;
CREATE TABLE IF NOT EXISTS tags (
id INT AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(255) NOT NULL
) ENGINE=INNODB;
db.Query
insert, err := pool.Query("INSERT INTO tags(title) VALUES ('tag')")
if err != nil {
panic(err.Error())
}
defer insert.Close()
查看数据
struct
type Tag struct {
ID int `json:"id"`
Title string `json:"title"`
}
查询代码如下:
results, err := pool.Query("SELECT id, title FROM tags")
if err != nil {
panic(err.Error()) // proper error handling instead of panic in your app
}
for results.Next() {
var tag Tag
err = results.Scan(&tag.ID, &tag.Title)
if err != nil {
panic(err.Error()) // proper error handling instead of panic in your app
}
log.Printf(tag.Title)
}
(待更新)