golang操作MySQL的具体案例

golang操作MySQL的具体案例


代码篇的基础操作:

package mainimport (
"fmt"
_ "github.com/go-sql-driver/mysql"
"github.com/jmoiron/sqlx")type Profile struct {
Id   int    `db:"id"`
Student string `db:"student"`}var Db *sqlx.DBfunc init()  {
   database, err :=sqlx.Open("mysql","root:1234567890@tcp(127.0.0.1:3306)/Demo")

if err != nil {
fmt.Println("open mysql failed,", err)
return
}
Db = database}func main()  {

// 添加
r, err := Db.Exec("insert into profile(student)values(?)", "stu001")
if err != nil {
fmt.Println("exec failed, ", err)
return
}

id, err := r.LastInsertId()

if err != nil {
fmt.Println("exec failed, ", err)
return
}

var profile []Profile

// 查
selectErr := Db.Select(&profile,"select id,student from profile where id=?",1)

if selectErr != nil {
fmt.Println("exec failed, ", selectErr)
return
}
fmt.Println("select succ:", profile)

//更新
res, resErr := Db.Exec("update profile set student=? where id=?", "stu0003", 1)
if resErr != nil {
fmt.Println("exec failed, ", resErr)
return
}
row, rowErr := res.RowsAffected()
if rowErr != nil {
fmt.Println("rows failed, ",rowErr)
}
fmt.Println("update succ:",row)

// 删除
delres, delerr := Db.Exec("delete from profile where id=?", 1)
if delerr != nil {
fmt.Println("exec failed, ", delerr)
return
}

delrow,delrowerr := delres.RowsAffected()
if delrowerr != nil {
fmt.Println("rows failed, ",delrowerr)
}

fmt.Println("delete succ: ",delrow)

defer Db.Close()  // 注意这行代码要写在上面err判断的下面}

结果:


╰$ go run mySql.go
exec failed,  4
select succ: []
update succ: 0
delete succ:  0
(0)

相关推荐