Go操作Mysql数据库

Mysql

//下载mysql依赖文件
go get github.com/go-sql-driver/mysql
go get github.com/jmoiron/sqlx
//连接mysql

package main

import (
  "fmt"
  _ "github.com/go-sql-driver/mysql"
  "github.com/jmoiron/sqlx"
)

var Db *sqlx.DB

type Users struct {
  Id       int64  `db:"id"`
  UserName string `db:"user_name"`
}

func init() {
  //连接数据库
  database, err := sqlx.Open("mysql", "root:ddmw2BjYwnIgO65N@tcp(47.97.253.216:3306)/go_test")
  if err != nil {
      fmt.Println(err)
      return
  }
  Db = database
}

func main() {
  //delUsersById(1)
  modifyUserNameById(2, "李四")
}

//修改数据
func modifyUserNameById(id int64, username string) {
  //开启事务
  conn, err := Db.Begin()
  if err != nil {
      fmt.Println(err)
      return
  }
  exec, err := conn.Exec("update users set user_name=? where id=?", username, id)
  if err != nil {
      fmt.Println(err)
      conn.Rollback()
      return
  }
  row, err := exec.RowsAffected()
  if err != nil {
      fmt.Println(err)
      conn.Rollback()
      return
  }
  fmt.Println("update row count", row)
  conn.Commit() //事务提交

}

//删除数据
func delUsersById(id int64) {
  conn, err := Db.Beginx() //开启事务
  if err != nil {
      fmt.Println("begin failed", err)
      return
  }
  exec, err := conn.Exec("delete from users where id=?", id)
  if err != nil {
      fmt.Println("delete user failed", err)
      conn.Rollback() //事务回滚
      return
  }
  //获取受影响行数
  row, err := exec.RowsAffected()
  if err != nil {
      fmt.Println("delete failed", err)
  }
  fmt.Println("delete row count", row)
  conn.Commit() //事务提交
}

//查询数据
func selectList() []Users {
  var users []Users
  err := Db.Select(&users, "select id,user_name from users")
  if err != nil {
      fmt.Println(err)
      return nil
  }
  return users
}

//插入数据
func insert() (id int64) {
  res, err := Db.Exec("insert into users (user_name) values(?)", "张三")
  if err != nil {
      fmt.Println(err)
      return
  }
  //获取插入的ID值
  id, err = res.LastInsertId()
  if err != nil {
      fmt.Println(err)
      return
  }
  fmt.Println("id=========>", id)
  return
}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容