go標準庫文檔 zh-CN https://studygolang.com/pkgdoc
go 本地EN文檔打開方式
godoc -http=:8080
在瀏覽器中輸入 http://localhost:8080

image.png
在線中文文檔 http://docscn.studygolang.com/doc/
操作MySQL
一.數(shù)據(jù)庫準備
- 在MySQL中新建數(shù)據(jù)庫名稱test
- 新建表
create table people(
id int primary key auto_increment,
name varchar(64),
address varchar(128)
)
二.代碼實現(xiàn)
- 全部代碼
package main
import (
"database/sql"
"fmt"
_ "github.com/go-sql-driver/mysql"
)
func main(){
fmt.Println("Hello MySQL")
//1. 打開連接
db,err := sql.Open("mysql","root:123456@tcp(localhost:3306)/test")
db.Ping()
if err!=nil {
fmt.Println("打開數(shù)據(jù)庫失?。?)
return
}
fmt.Println("數(shù)據(jù)庫連接成功")
defer func() {
if db!=nil{
db.Close()
fmt.Println("關(guān)閉連接")
}
}()
//2.預處理SQL
//?表示占位符
Stmt,err :=db.Prepare("insert into people values (default,?,?)")
if err!=nil {
fmt.Println("預處理失敗!")
return
}
//關(guān)閉對象
defer func() {
if Stmt !=nil {
Stmt.Close()
fmt.Println("Stmt關(guān)閉")
}
}()
//參數(shù)和占位符對應
res,err := Stmt.Exec("王小二","深圳")
if err != nil{
fmt.Println("sql執(zhí)行失??!")
return
}
//3.獲取結(jié)果 插入失敗返回 0
count,err := res.RowsAffected()
if err != nil {
fmt.Println("獲取結(jié)果失敗")
}
//獲取主鍵
id,err := res.LastInsertId()
if err !=nil {
fmt.Println("獲取主鍵失敗",err)
}
fmt.Printf("受影響的行數(shù) %d 主鍵ID %d \n",count,id)
if count > 0 {
fmt.Println("插入成功!")
} else {
fmt.Println("插入失??!")
}
}