javaer to go之mysql操作
2023-09-14 08:57:15 时间
div >经过度娘后,发现比较常用golang mysql驱动包有两种mymysql和go-sql-driver/mysql。个人觉得mymysql这个名字起得不够文雅。所以我选择了go-sql-driver/mysql。
1、go-sql-driver/mysql的安装
Go 语言入门很简单:如何在 Go 语言中使用 MySQL MySQL 是一个基于结构化查询语言(SQL)的开源关系数据库管理系统。它是一种关系数据库,可将数据组织到一个或多个表中,其中数据相互关联。MySQL 是行业领先的开源数据库管理系统。它是一个多用户、多线程的数据库管理系统。
Go Mysql Driver 集成 Seata-Golang 解决分布式事务问题 2020 年 4 月,我们开始尝试实现 go 语言的分布式事务框架 Seata-Golang。众所周知,Seata AT 模式以无业务代码侵入的特点,被广大开发者推崇。Java 版 Seata AT 模式通过对 DataSource 数据源进行代理,在 sql 语句执行时,对 sql 拦截解析,获取数据库对应数据在 sql 语句执行前后的副本,序列化后保存起来,在 TC 协调回滚时用来回滚对应数据。实现 go 版本 client 的 AT 模式时,怎样对业务开发者更友好,入侵更少,成了首要考虑的目标。
因为go-sql-driver/mysql属于第三方的包,所以我们需要先获取到这个包。
通过系统的shell工具(命令行),把安装包加到我们的$GOPATH。
go get github.com/go-sql-driver/mysql
这里要注意的是:使用上面的命令不单要配置好Golang的环境,还需要把git的bin目录配置到Path环境变量中。
因为我们使用过程中,并没有直接使用到go-sql-driver/mysql,而是通过database/sql中的接口来使用驱动,这点和java的思想是一样的。所以我们在导入go-sql-driver/mysql包的时候,通过下划线作为占位符,告诉golang不会直接使用此包的内容。
注:
如果你导入了一个包却没有使用它,则会在构建程序时引发错误,如 imported and not used: os,这正是遵循了 Go 的格言:“没有不必要的代码!“。
变量的声明也一样,你如果声明了一个变量,却没有使用这个变量,也会引发错误。
占位符的存在,解决了你既要导入这个包,但又不会显式使用包的问题。
stmt, err := db.Prepare(`INSERT user (user_name,user_age,user_sex) values (?,?,?)`) checkErr(err) res, err := stmt.Exec("tony", 20, 1) checkErr(err) id, err := res.LastInsertId() checkErr(err)
修改:
stmt, err := db.Prepare(`UPDATE user SET user_age=?,user_sex=? WHERE user_id=?`) checkErr(err) res, err := stmt.Exec(21, 2, 1) checkErr(err) num, err := res.RowsAffected() checkErr(err)
删除:
Go 语言入门很简单:如何在 Go 语言中使用 MySQL MySQL 是一个基于结构化查询语言(SQL)的开源关系数据库管理系统。它是一种关系数据库,可将数据组织到一个或多个表中,其中数据相互关联。MySQL 是行业领先的开源数据库管理系统。它是一个多用户、多线程的数据库管理系统。
Go Mysql Driver 集成 Seata-Golang 解决分布式事务问题 2020 年 4 月,我们开始尝试实现 go 语言的分布式事务框架 Seata-Golang。众所周知,Seata AT 模式以无业务代码侵入的特点,被广大开发者推崇。Java 版 Seata AT 模式通过对 DataSource 数据源进行代理,在 sql 语句执行时,对 sql 拦截解析,获取数据库对应数据在 sql 语句执行前后的副本,序列化后保存起来,在 TC 协调回滚时用来回滚对应数据。实现 go 版本 client 的 AT 模式时,怎样对业务开发者更友好,入侵更少,成了首要考虑的目标。
相关文章
- Python——MySQL操作,使用mysql.connector
- 【Go命令教程】12. go tool pprof
- MySQL中使用Like模糊查询太慢
- php与mysql的链接到底用mysql 还是mysqli,pdo
- Go Mysql Driver 集成 Seata-Golang 解决分布式事务问题
- Java通过mysql-connector-java-8.0.11连接MySQL Server 8.0遇到的几个问题
- ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (
- Ruby on Rails 3 Can't connect to local MySQL server through socket '/tmp/mysql.sock' on linux
- 【原创】基于 Keepalived 做主备的 MySQL 在切换时遇到的问题
- MySQL内核月报 2014.10-MySQL· 捉虫动态·崩溃恢复失败
- 一个比较常用的关于php下的mysql数据操作类
- PHP连接MySQL数据库的三种方式(mysql、mysqli、pdo)
- MYSQL避免全表扫描__如何查看sql查询是否用到索引(mysql)
- Starting MySQL ERROR! Couldn‘t find MySQL server (/usr/local/mysql/bin/mysqld_safe)
- PureMySQL: 一个MySQL简单操作方式
- 上Mysql com.mysql.jdbc.StatementImpl$CancelTask内存泄漏问题和解决方法
- Go语言自学系列 | go常用命令
- mysql时间戳函数
- MySQL创建与删除数据库
- mysql_10 _ MySQL为什么有时候会选错索引?
- MySQL之自带四库之mysql库