package main import ( "fmt" _ "github.com/go-sql-driver/mysql" "github.com/jmoiron/sqlx" ) var DB *sqlx.DB type DbInfo struct { Engine string User string Pass string Ip string Port string Table string } func init () { db1 := DbInfo{ "mysql", "root", "root", "127.0.0.1", "3306", "test", } database, err := sqlx.Open(db1.Engine, fmt.Sprintf("%s:%s@tcp(%s:%s)/%s", db1.User, db1.Pass, db1.Ip, db1.Port, db1.Table)) if err != nil { fmt.Println("mysql open failed, error:", err) return } DB = database } func main () { _, err := DB.Exec("insert into test (username, age) values (?, ?)", "lisi", "24") if err != nil { fmt.Println("mysql exec failed, error:", err) return } }
使用第三方的包 sqlx, mysql ;獲取:
go get github.com/jmoiron/sqlx
go get github.com/go-sql-driver/mysql
2.查詢操作,更新操作
package main
import (
"fmt"
_ "github.com/go-sql-driver/mysql"
"github.com/jmoiron/sqlx"
)
var DB *sqlx.DB
type Person struct {
//對應數據庫里面的字段名
UserId int `db:"user_id"`
Username string `db:"username"`
Sex string `db:"sex"`
Email string `db:"email"`
}
func init () {
database, err := sqlx.Open("mysql", "zhangjun:zhangjun123@tcp(127.0.0.1:3306)/test")
if err != nil {
fmt.Println("open mysql failed,error:", err)
return
}
DB = database
}
func main () {
var person []Person
err := DB.Select(&person, "select user_id, username, sex, email from person where user_id = ?", 1)
if err != nil {
fmt.Println("select failed,error:", err)
return
}
fmt.Println(person)
//更新操作
_, err = DB.Exec("update person set username = ? where user_id = ?", "lisi", 1)
if err != nil {
fmt.Println("update failed,error:", err)
return
}
}