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)
    }

(待更新)