Go语言增强版操作Mysql(Sqlx)

点击上方“ Go语言进阶学习 ”,进行关注

回复“Go语言”即可获赠从入门到进阶共10本电子书

春城无处不飞花,寒食东风御柳斜。

前言

上次咱们学习了如何使用Go操作Mysql,并且实现了简单的增删改查。

但是相对来说,还有有点复杂的,可能那些大佬也都觉得繁琐叭。

就又开发出了增强版查询Mysql操作库Sqlx

mod文件

go.mod

module sqlxDemo

创建数据表


创建表代码

CREATE TABLE `userinfo` (

创建结构体


结构体代码

type Userinfo struct {

连接数据库


代码

import (

查询单条

我记得使用原来的方式进行查询并且绑定结构体,是这审的。

//查询单条

第4行代码,需要将结构体的字段一个一个上去。

如果使用sqlx呢?

代码

//查询

执行结果

还是第4行代码,直接一个结构体扔过去,就绑定成功了。

如果表有很多字段,结构体字段也有很多,这个是很有用的。

查询多条

还是惯例,看看原来是怎么查的。

//查询多条

为了方便,我去掉了err,使用伪代码处理err代替。

原来的方法,查询出来还得需要一个循环,还需要一个切片,乖乖嘞,打扰了。

来看看sqlx

代码

//查询多条

执行结果

还是直接扔过去,就绑定完成了,真是美滋滋。

添加

额,添加,更新,删除,事物的话,似乎跟原来差不多,直接看代码叭。

代码

//添加

执行结果

Mysql

更新


代码

//更新数据

执行结果

Mysql

删除


代码

sqlStr := "delete from userinfo where id = ?;"

执行结果

Mysql

事物


代码

//事物

执行结果

Mysql

NameExec


增 删 改使用。

NameExec方法是通过结构体Map绑定SQL语句,试了试,感觉用处不大,不做举例。

NameQuery

做查询使用。

用法同上,没用,不做举例。

总结

其实sqlx模块,最大的改进是在查询方面,相信你也看到了,确实会比原生查询方便很多很多。

但是在其他方便,就显得捉襟见肘了,但是又说,一般还是查询场景多,查多改少

如果在操作过程中有任何问题,记得下面留言,我们看到会第一时间解决问题。

乾坤未定,你我皆是黑马。

我是码农星期八,如果觉得还不错,记得动手点赞一下哈。

感谢你的观看。

如果你觉得文章还可以,记得点赞留言支持我们哈。感谢你的阅读,有问题请记得在下方留言噢~

想学习更多关于Python的知识,可以参考学习网址:http://pdcfighting.com/,点击阅读原文,可以直达噢~

-------------------********************************** End **********-------------**-----********-**********************************

往期精彩文章推荐:

欢迎大家**点赞,****留言,****转发,**转载,****感谢大家的相伴与支持

想加入Go学习群请在后台回复【入群

万水千山总是情,点个【在看】行不行

本文分享自微信公众号 - Go语言进阶学习(gh_dced3d6523fb)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

一篇文章带你弄懂Python异常简介和案例分析

点击上方“Go语言进阶学习”,进行关注回复“Go语言”即可获赠从入门到进阶共10本电子书今日鸡汤似此星辰非昨夜,为谁风露立中宵。大家好,我是Go进阶者,今天给大家分享一些Python基础(异常),一起来看看吧一、异常简介当Python检测到一个错误时,解释器就无法继续执行了,反而出现了一些错误的提示,这就是所谓的"异常"。二、案例分析打开一个不存在的

Android So动态加载 优雅实现与原理分析

背景:漫品Android客户端集成适配转换功能(基于目标识别(So库35M)和人脸识别库(5M)),导致apk体积50M左右,为优化客户端体验,决定实现So文件动态加载.!(https://oscimg.oschina.net/oscnet/00d1ff90e4b34869664fef59e3ec3fdd20b.png)点击上方“蓝字”关注我

Twitter的分布式自增ID算法snowflake (Java版)

概述分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移