- 使用db.Begin()进行开启
- 操作数据库
- 开启成功之后,进行事务操作
操作-Exec
查询-Query
Go
func main(){
//连接数据库
db,err := sql.Open("mysql","ims:123456@tcp(192.168.0.26:3306)/ibcf")
if err != nil{
log.Fatal("连接数据库失败:",err)
}
//关闭连接
defer db.Close()
//验证是否连接成功
err = db.Ping()
if err != nil{
log.Fatal("验证失败:",err)
}
fmt.Println("连接成功!")
//开启事务
tx,err := db.Begin()
if err != nil{
log.Fatal("开启事务失败:",err)
}
//操作数据库
if _,err := tx.Exec("UPDATE user0 SET server_port = ? WHERE id = ?","1111",1);err != nil{
tx.Rollback()//事务回滚
log.Fatal("更新失败:",err)
}
_,err := tx.Query("SELECT id,server_ip,server_port FROM user0")
if err != nil{
tx.Rollback()//事务回滚
log.Fatal("查询失败!")
}
if _,err := tx.Exec("INSERT INTO user0(id,server_ip,server_port) VALUES(?,?,?)",2,"192.168.0.0",9090);err != nil{
tx.Rollback()//事务回滚
log.Fatal("插入数据失败:",err)
}
//关闭
if err := tx.Commit();err != nil{
tx.Rollback()//事务回滚
log.Fatal("关闭失败:",err)
}
}