博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
golang中使用mysql数据库
阅读量:4673 次
发布时间:2019-06-09

本文共 3127 字,大约阅读时间需要 10 分钟。

安装

安装mysql驱动

go get github.com/go-sql-driver/mysql

安装sqlx驱动

go get github.com/jmoiron/sqlx

 

一.插入数据库

package mainimport (    "fmt"    _ "github.com/go-sql-driver/mysql"    "github.com/jmoiron/sqlx")type Person struct {    UserId   int    `db:"user_id"`    Username string `db:"username"`    Sex      string `db:"sex"`    Email    string `db:"email"`}var Db *sqlx.DBfunc init() {
  //与数据库建立连接 database, err := sqlx.Open("mysql", "root:123@tcp(127.0.0.1:3306)/test") if err != nil { fmt.Println("open mysql failed,", err) return } Db = database}func main() {
  //事务操作 conn, err := Db.Begin() if err != nil { return }  //插入数据 r, err := conn.Exec("insert into person(username, sex, email)values(?, ?, ?)", "stu001", "man", "stu01@qq.com") if err != nil { fmt.Println("exec failed, ", err) return } id, err := r.LastInsertId() if err != nil { fmt.Println("exec failed, ", err)     //回滚      conn.Rollback() return } fmt.Println("insert succ:", id)   //提交事务 conn.Commit()}

二.查询数据库

package mainimport (    "fmt"    _ "github.com/go-sql-driver/mysql"    "github.com/jmoiron/sqlx")type Person struct {    UserId   int    `db:"user_id"`    Username string `db:"username"`    Sex      string `db:"sex"`    Email    string `db:"email"`}var Db *sqlx.DBfunc init() {    database, err := sqlx.Open("mysql", "root:123@tcp(127.0.0.1:3306)/test")    if err != nil {        fmt.Println("open mysql failed,", 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("exec failed, ", err)        return    }    fmt.Println("select succ:", person)}

三.修改数据库

package mainimport (    "fmt"    _ "github.com/go-sql-driver/mysql"    "github.com/jmoiron/sqlx")type Person struct {    UserId   int    `db:"user_id"`    Username string `db:"username"`    Sex      string `db:"sex"`    Email    string `db:"email"`}var Db *sqlx.DBfunc init() {    database, err := sqlx.Open("mysql", "root:123@tcp(127.0.0.1:3306)/test")    if err != nil {        fmt.Println("open mysql failed,", err)        return    }    Db = database}func main() {    _, err := Db.Exec("update person set username=? where user_id=?", "stu0003", 1)    if err != nil {        fmt.Println("exec failed, ", err)        return    }}

四.删除数据库

package mainimport (    "fmt"    _ "github.com/go-sql-driver/mysql"    "github.com/jmoiron/sqlx")type Person struct {    UserId   int    `db:"user_id"`    Username string `db:"username"`    Sex      string `db:"sex"`    Email    string `db:"email"`}var Db *sqlx.DBfunc init() {    database, err := sqlx.Open("mysql", "root:123@tcp(127.0.0.1:3306)/test")    if err != nil {        fmt.Println("open mysql failed,", err)        return    }    Db = database}func main() {    _, err := Db.Exec("delete from person where user_id=?", 1)    if err != nil {        fmt.Println("exec failed, ", err)        return    }    fmt.Println("delete succ")}

 

转载于:https://www.cnblogs.com/angelyan/p/10691995.html

你可能感兴趣的文章
vue通过webpack打包后怎么运行
查看>>
MYSQL中的日期转换
查看>>
在线修改Schema
查看>>
【学术篇】SDOI2008 仪仗队
查看>>
5.递归实现,把M元用最少的硬币来凑。不同面值的硬币,有10元,5元,2元,1元。...
查看>>
第6章—渲染web视图—使用Thymeleaf
查看>>
Android动态添加Fragment
查看>>
OGRE粒子系统简介
查看>>
Windows 10 使用问题
查看>>
linux xargs命令
查看>>
用CSS3实现图像风格
查看>>
转载--黎曼
查看>>
mysql的建表语句
查看>>
免费的HTML5版uploadify
查看>>
机器学习之路:python 集成分类器 随机森林分类RandomForestClassifier 梯度提升决策树分类GradientBoostingClassifier 预测泰坦尼克号幸存者...
查看>>
通过onkeydown事件来控制只允许数字
查看>>
186. [USACO Oct08] 牧场旅行
查看>>
一个屌丝程序猿的人生(三十九)
查看>>
Linux常用命令
查看>>
Spring之@Configuration配置解析
查看>>