网站首页 > java教程 正文
背景
前几个小节我们学习了golang基本的http操作,也简单的了解了一下golang的参数绑定的基本原理,在接下来框架的学习和实战中,我们还要学会crud的最后一项基本技能,就是学会使用golang操作mysql数据库,虽然在golang中也有很多orm框架,但是目前还是先不要接触,否则本末倒置,就不好了,golang中操作mysql数据库比较简单,但是我们还是要简单地过一下,因为以后的深度内容肯定会涉及到这些基本的操作,比如分表分库,比如我们是否可以像之前学习trie的时候,了解参数路由的基本原理,以后我们了解了分表分库的原理之后,是否也可以学一个简单的golang版本的sharding-jdbc呢
本小节我们主要学习golang如果连接mysql数据库,如何完成日常的增删改查的功能
golang连接mysql数据库
和java连接mysql数据库一样,golang连接mysql数据库也需要驱动,也需要mysql的地址,用户名密码,也是和mysql建立一个TCP连接,代码如下展示
和java不一样的是,java需要第三方jar包提供对数据库连接池的支持,例如druid,HikariCP,golang天生支持数据库连接池,不需要引入其他第三方包的支持,这也是新一代语言自己的优势,和得天独厚的历史语言带来的经验。
上面的代码截图中,我们设定了全局变量sql.DB,然后我们使用了init方法对改全局变量进行初始化,init方法比较特殊,他会在main函数之前执行,如果用类比的方法学习golang的init的方法,我们初学者可以把其认为是java中的static 静态代码块,我们使用sql.Open方法获取到了一个db对象,然后设置最大空闲连接数和最大链接数,请你要注意,我们也导入了一个mysql驱动,因为在代码中没有显示调用,所以,在import的时候,使用下划线来进行别名,这样可以来使用了
插入一条数据
首先我们要新建一张表,因为我们是做测试,我们新建的表名叫做t_user,就三个字段,id(自增),name(varchar),age(int)
1.使用Exec方法插入
插入的代码截图如下,我们使用db.Exec方法来执行insert语句,如果执行成功,通过返回的Result数据库对象返回插入记录的主键id
2.使用Prepare方法和stmt的Exec方法插入
代码操作如下,这个目测貌似比直接使用Exec还复杂一点,并且还需要手动关闭资源,并不是很好用,但是我们使用prepare来实现批量插入的逻辑
3.使用Prepare方法进行批量插入
如果我们想完成批量插入的功能,使用prepare方法就会特别合适,完整的代码示例如下,看来什么东西都会有其存在的价值,这边prepare方法就比exec方法更加试用
更新和删除数据
更新mysql的数据还是比较简单的,场景也是比较单一,我们可以写一个如下的简单示例说明,这边需要我们记忆的是,更新和插入还有删除的操作都是调用的db.Exec方法来完成操作的
查询记录
1.查询一条记录
代码截图如下所示,可以看到使用db.QueryRow方法来进行查询一条记录的操作,这样的场景一般适用于where条件是查询主键的数据,或者唯一索引的数据,如果查询出超过一条的数据,该方法会报错,,我这边就简单地偷了一个懒,没有用返回的err进行判断,小伙伴们可以自动动手实验
2.查询多条记录
代码截图如下所示,也可以看出查询多条记库可以使用db.Query方法来做,然后根据返回的rows对象,调用其next函数,完成最后的操作赋值
小结
本小节特别简单,大家只需要花费5mins的时候,从头到尾的浏览一遍就可以了,了解Exec,Query,Prepare,QueryRow的基本方法的使用,基本上也就能够完成对mysql的最最基本的操作了,关于事务的操作,我们等到实战的学习上,再一起深入
欢迎大佬拍砖指点,如果觉得能够了解到golang的一点知识,希望大家点赞收藏,素质三连,谢谢大家的支持
猜你喜欢
- 2024-10-27 Spring Boot 2.x基础教程:使用JdbcTemplate访问MySQL数据库
- 2024-10-27 Java工具分享以及安装教程(1)——安装mysql数据库
- 2024-10-27 JDBC连接数据库基本流程(jdbc连接数据库5个步骤代码)
- 2024-10-27 MySQL 数据同步神器 - Canal 入门篇
- 2024-10-27 Spring Boot和Flink实现 MySQL 数据同步
- 2024-10-27 晋级mysql知识点(十一) MySQL如何与应用系统建立连接
- 2024-10-27 什么是 Java 数据库连接 (JDBC)?(java数据库连接库jdbc用到哪种设计模式)
- 2024-10-27 如何实现MySQL中的数据同步到ES(电子税务局怎么设置数据同步工商年报)
- 2024-10-27 线上MySQL不可用,报错数据库无法连接
- 2024-10-27 Todo List:Node+Express 搭建服务端连接Mysql - 第五章(第1节)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)