package main
import("database/sql""fmt""time"_"github.com/go-sql-driver/mysql")var db *sql.DB
funcinitdb()(err error){
db, err = sql.Open("mysql","ellis:ellis@tcp(192.168.214.134:3306)/go_db?charset=utf8mb4&parseTime=True")if err !=nil{
return err
}//尝试与数据库建立连接
err = db.Ping()if err !=nil{
return err
}// See "Important settings" section.
db.SetConnMaxLifetime(time.Minute *3)
db.SetMaxOpenConns(10)//最大空闲
db.SetMaxIdleConns(10)returnnil}type User struct{
id int
name string
password string}funcsearchOne(){
var user User
db.QueryRow("select * from user_tbl where id=1").Scan(&user.id,&user.name,&user.password)
fmt.Printf("user.id: %v\n", user.id)}// ...funcmain(){
err :=initdb()if err !=nil{
panic(err)}searchOne()}
查询多行
package main
import("database/sql""fmt""time"_"github.com/go-sql-driver/mysql")var db *sql.DB
funcinitdb()(err error){
db, err = sql.Open("mysql","ellis:ellis@tcp(192.168.214.134:3306)/go_db?charset=utf8mb4&parseTime=True")if err !=nil{
return err
}//尝试与数据库建立连接
err = db.Ping()if err !=nil{
return err
}// See "Important settings" section.
db.SetConnMaxLifetime(time.Minute *3)
db.SetMaxOpenConns(10)//最大空闲
db.SetMaxIdleConns(10)returnnil}type User struct{
id int
name string
password string}funcsearchAll(){
query :="select * from user_tbl"
r, err := db.Query(query)defer r.Close()if err !=nil{
fmt.Printf("err: %v\n", err)}else{
// 一行行的读for r.Next(){
var u User
r.Scan(&u.id,&u.name,&u.password)
fmt.Printf("u: %v\n", u)}}}// ...funcmain(){
err :=initdb()if err !=nil{
panic(err)}
fmt.Printf("db: %v\n", db)searchAll()}
更新
package main
import("database/sql""fmt""time"_"github.com/go-sql-driver/mysql")var db *sql.DB
funcinitdb()(err error){
db, err = sql.Open("mysql","ellis:ellis@tcp(192.168.214.134:3306)/go_db?charset=utf8mb4&parseTime=True")if err !=nil{
return err
}//尝试与数据库建立连接
err = db.Ping()if err !=nil{
return err
}// See "Important settings" section.
db.SetConnMaxLifetime(time.Minute *3)
db.SetMaxOpenConns(10)//最大空闲
db.SetMaxIdleConns(10)returnnil}type User struct{
id int
name string
password string}funcupdate(){
sql :="update user_tbl set name=? where id=?"
r, err := db.Exec(sql,"vv",1)if err !=nil{
fmt.Printf("err: %v\n", err)}else{
//打印影响行数
fmt.Println(r.RowsAffected())}}funcmain(){
err :=initdb()if err !=nil{
panic(err)}update()}
删除
package main
import("database/sql""fmt""time"_"github.com/go-sql-driver/mysql")var db *sql.DB
funcinitdb()(err error){
db, err = sql.Open("mysql","ellis:ellis@tcp(192.168.214.134:3306)/go_db?charset=utf8mb4&parseTime=True")if err !=nil{
return err
}//尝试与数据库建立连接
err = db.Ping()if err !=nil{
return err
}// See "Important settings" section.
db.SetConnMaxLifetime(time.Minute *3)
db.SetMaxOpenConns(10)//最大空闲
db.SetMaxIdleConns(10)returnnil}type User struct{
id int
name string
password string}funcdelete(){
sql :="delete from user_tbl where id=?"
r, err := db.Exec(sql,1)if err !=nil{
fmt.Printf("err: %v\n", err)}else{
//打印影响行数
fmt.Println(r.RowsAffected())}}funcmain(){
err :=initdb()if err !=nil{
panic(err)}delete()}