一、安装mysql-driver驱动

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

二、安装完毕之后,就可以通过go语言操作mysql了

const (
_selectUser = "select name,age from user where id = ?"
_updateUser = "update user set name = ? where name = ?"
_insertUser = "insert user (name,age) values (?,?)"
_deleteUser = "delete user where id = ?"
) func main () {
var (
err error
)
// 得到一个db对象
// Open方法第二个参数: 用户名:密码@协议(ip:端口)/数据库
db,err := sql.Open("mysql","root:root@tcp(127.0.0.1:3306)/day0731")
if err != nil {
fmt.Println(err)
return
}
defer db.Close() // 这里我们拿到了db这个对象,就可以对day0731这个mysql数据库进行操作了
// 查询操作
// Query方法,返回值具体类型自己看
var (
name string
age int
)
resultRows,err := db.Query(_selectUser,1)
// 这里的name,age必须和sql语句顺序一致,也不能多传,也不能少传
err = resultRows.Scan(&name,&age)
if err != nil {
fmt.Println(err)
retrun
}
fmt.Println(name)
fmt.Println(age) // QueryRow方法,查询的效果和上面一致
err = db.QueryRow(_selectUser,1).Scan(&name,&age)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(name)
fmt.Println(age) // 插入、更新、删除操作
// Exec方法,执行一段sql语句
result,err := db.Exec(_updateUser,"朱春雨","朱宇")
if err != nil {
fmt.Println(err)
return
}
// result这个对象,他有两个方法,RowsAffected(),LastInsertId(),
// 分别返回影响的行数,还有就是最后插入的id
// 我们这里执行的是更新语句,就看这个方法就好了RowsAffected
rowCount,err := result.RowsAffected()
if err != nil {
fmt.Println(err)
return
}
if rowCount == 0 {
fmt.Println("更新操作失败")
return
}
fmt.Println("更新操作成功!") }

三、对mysql的增删查改用Query,Exec方法就ok了,具体其他的方法参考go语言的官方文档

Golang-使用mysql的更多相关文章

  1. [转帖]golang操作mysql使用总结

    golang操作mysql使用总结 https://www.cnblogs.com/hanyouchun/ 讲解的很详细~ 前言 Golang 提供了database/sql包用于对SQL数据库的访问 ...

  2. golang 的 mysql 操作

    goLang的mysql操作,大致可分为三个步骤: 1.下载mysql驱动:go get github.com/go-sql-driver/mysql 2.建立连接:sql.Open("my ...

  3. golang操作mysql数据库

    golang操作mysql数据库 代码: mysql的增.删.改.查 package main import ( "database/sql" "fmt" &q ...

  4. Golang操作MySQL的正确姿势

    封装原因: 查看了很多网上提供的ORM类型的数据库操作,觉得比较麻烦,需要提前配置很多的表结构体,然后才能使用,对于数据表很多的项目就配置起来就比较麻烦,所以对golang的mysql包进行了外层包装 ...

  5. 使用golang理解mysql的两阶段提交

    使用golang理解mysql的两阶段提交 文章源于一个问题:如果我们现在有两个mysql实例,在我们要尽量简单地完成分布式事务,怎么处理? 场景重现 比如我们现在有两个数据库,mysql3306和m ...

  6. golang操作mysql使用总结

    前言 Golang 提供了database/sql包用于对SQL数据库的访问, 作为操作数据库的入口对象sql.DB, 主要为我们提供了两个重要的功能: sql.DB 通过数据库驱动为我们提供管理底层 ...

  7. Mysql学习(一)添加一个新的用户并用golang操作Mysql

    Mysql添加一个新的用户并赋予权限 添加一个自己的用户到mysql 首先我们需要先用root用户登录mysql,但是刚安装完没有密码,我们先跳过密码 ailumiyana@ailumiyana:~/ ...

  8. golang实现mysql数据库备份

    背景 navicat是mysql可视化工具中最棒的,但是,在处理视图的导入导出方面,它是按照视图名称的字母顺序来处理的,若视图存在依赖,在导入过程中就会报错.前面已经用python写了一个,但在使用过 ...

  9. 使用golang插入mysql性能提升经验

    前言 golang可以轻易制造高并发,在某些场景很合适,比如爬虫的时候可以爬的更加高效.但是对应某些场景,如文件读写,数据库访问等IO为瓶颈的场合,就没有什么优势了. 前提基础 1.golang数据库 ...

  10. [Go] golang实现mysql连接池

    golang中连接mysql数据库,需要使用一个第三方类库github.com/go-sql-driver/mysql,在这个类库中就实现了mysql的连接池,并且只需要设置两个参数就可以实现 一般连 ...

随机推荐

  1. 洛谷P1084 疫情控制

    题目 细节比较多的二分+跟LCA倍增差不多的思想 首先有这样一个贪心思路,深度越低的检查点越好,而最长时间和深度具有单调性,即给定时间越长,每个军队能向更浅的地方放置检查点.因此可以考虑二分时间,然后 ...

  2. shell 文件比较符

    文件夹不存在创建 if [ ! -d "/data/" ];then mkdir /data else echo "文件夹已经存在" fi 文件存在则删除 if ...

  3. webpack vue-cli2 配置打包测试环境

    目前vue-cli2上原配置是只有开发环境dev和线上环境prod的配置,但是我们实际场景上还有很多需要一个测试环境test,下面就是对测试环境的配置,将测试环境和线上环境的打包代码分开就不需要切来切 ...

  4. 【Gamma】Scrum Meeting 1 & 与助教谈话

    前言 Gamma阶段第1次会议在5月26日22:00由PM在大运村一公寓三层召开, 时长30min. 任务分配 姓名 今日任务 明日任务 困难 周博闻 用户控制器解耦和注释 用户控制器解耦和注释 周国 ...

  5. Linux平台Boost 1.6.7的编译方法

    boost库下载地址:https://dl.bintray.com/boostorg/release/ 编译: 1. 获得bjam (1) # cd /usr/src/boost_1_67_0 (2) ...

  6. centos如何添加ftp目录

    检查Centos服务器中是否安装了vsftpd rpm -qa |grep vsftpd 如果没有显示则没有安装 2.安装vsftpd yum -y install vsftpd 3.打开vsftpd ...

  7. 删除DB2实例下的数据库

    db2ilist 查看所有实例  db2 get instance 查看当前连接的实例 db2 list db directory 查看当前实例下连接的数据库 ==================== ...

  8. 使用ES6删除对象中某些属性

    const form = { id: '011', name: '测试一', description: '测试demo' } // 目标: 取到删除description属性的对象, 即下文的data ...

  9. Python爬虫实例项目

    WechatSogou [1]- 微信公众号爬虫.基于搜狗微信搜索的微信公众号爬虫接口,可以扩展成基于搜狗搜索的爬虫,返回结果是列表,每一项均是公众号具体信息字典. DouBanSpider [2]- ...

  10. Android -------- kotlin插件神器Json直接生成javaBean

    这是一个data class从JSON字符串生成Kotlin 的插件,换句话说,是一个将JSON字符串转换为Kotlin data class(Json到Kotlin)的插件 在使用Kotlin进行开 ...