知识分享之Golang——使用gorm时进行执行自定义SQL的几种方式

背景

知识分享之Golang篇是我在日常使用Golang时学习到的各种各样的知识的记录,将其整理出来以文章的形式分享给大家,来进行共同学习。欢迎大家进行持续关注。

知识分享系列目前包含Java、Golang、Linux、Docker等等。

开发环境

  • 系统:windows10
  • 语言:Golang
  • 组件库:Bleve
  • golang版本:1.18
  • 组件官网:https://gorm.io/
  • 组件仓库:gorm
  • 开源协议:MIT License

内容

近期一直在使用gorm进行数据的增删改查操作,对于一些单表或关系表来讲使用起来比较方便,但是有时我们可能需要一些特定的长SQL,这时就需要使用到自定义SQL了,本节我对其进行整理出来一些常用的实现方式:

1、当我们只需要执行某个SQL而不需要进行获取返回值时使用

// 如果其中有变量,则使用?进行占位,sql := "要执行的SQL"// 在Exec方法中在sql 后面可以使用多个参数作为占位的补充// 例如需要name=?,则写法可以使用util.Db.Exec(sql,"张三").Errorerr := util.Db.Exec(sql).Errorif err != nil {log.Println(err.Error())}

2、当我们需要一个长组合SQL进行查询出来一个特定结果时,可以使用下面的方式实现自定义SQL使用

sql := "要执行的SQL"// 接收返回结果的结构体type User struct {Id   intName string}// 声明一个接收对象,这里接受多条时也可以使用数组进行var userInfo Usererr := util.Db.Raw(sql, "张三").Scan(&userInfo).Errorif err != nil {log.Println(err.Error())}

3、自定义处理返回值

sql := "要执行的SQL"rows, err := util.Db.Raw(sql).Rows()if err != nil {log.Println(err.Error())}for rows.Next() {// 处理逻辑}
本文声明:
88x31.png

知识共享许可协议
本作品由 cn華少 采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可。


http://www.taodudu.cc/news/show-3811982.html

相关文章:

  • 知识分享:安全的最底层---硬件芯片安全
  • 【Postman知识分享】Postman测试下载文件和上传文件(图文详解)
  • 知识分享之PostgreSQL——数据库中的模式(Schema)
  • 红队攻防知识分享-红日安全团队靶场1
  • 知识分享之规范——GRPC基础(一)
  • 知识分享之Golang——函数的基本用法
  • 分享 30+ 个常用的前端技术知识点
  • Java知识分享网-免费Java资源下载
  • AMBA CHI知识分享专题
  • 分享知识和经验
  • 知识分享(网络)
  • 如何有效分享知识
  • 怎样进行一场精彩的知识分享?
  • Command Prompt 常用命令
  • intel Graphics Command Center
  • 关于Ubuntu command-not-found是如何实现的研究
  • Java 操作 MongoDB runCommand接口
  • DirectX12 - Command List(命令列表)
  • 使用 command 操作mongodb数据
  • @HystrixCommand使用
  • Command命令模式
  • BASH脚本基础:环境变量PROMPT_COMMAND介绍
  • k8s args和command
  • Thinkphp command使用
  • WPF command
  • 命令模式(Command)
  • 设计模式之命令模式(Command)
  • Command(命令)模式
  • 【Android系统学习路线】
  • Android学习笔记:WebView

知识分享之Golang——使用gorm时进行执行自定义SQL的几种方式相关推荐

  1. 知识分享之Golang——go mod时使用代理模式goproxy和私有模式GOPRIVATE

    知识分享之Golang--go mod时使用代理模式goproxy和私有模式GOPRIVATE 背景 知识分享之Golang篇是我在日常使用Golang时学习到的各种各样的知识的记录,将其整理出来以文 ...

  2. 知识分享之Golang——json与omitempty的使用

    知识分享之Golang--json与omitempty的使用 背景 知识分享之Golang篇是我在日常使用Golang时学习到的各种各样的知识的记录,将其整理出来以文章的形式分享给大家,来进行共同学习 ...

  3. 知识分享之Golang——go-i18n国际化组件

    知识分享之Golang--go-i18n国际化组件 背景 知识分享之Golang篇是我在日常使用Golang时学习到的各种各样的知识的记录,将其整理出来以文章的形式分享给大家,来进行共同学习.欢迎大家 ...

  4. 知识分享之Golang——go-i18n的使用

    知识分享之Golang--go-i18n国际化组件 背景 知识分享之Golang篇是我在日常使用Golang时学习到的各种各样的知识的记录,将其整理出来以文章的形式分享给大家,来进行共同学习.欢迎大家 ...

  5. 知识分享之Golang——函数的基本用法

    知识分享之Golang--函数的基本用法 背景 知识分享之Golang篇是我在日常使用Golang时学习到的各种各样的知识的记录,将其整理出来以文章的形式分享给大家,来进行共同学习.欢迎大家进行持续关 ...

  6. 分享QQ、微信 好友 ,空间、 新浪 的三种方式(验证通过)

    请大家多多指教,这个版本会不断的更新,完善,谢谢大家的支持! 感谢这个群部门大神的 分享QQ.微信  好友 ,空间. 新浪   的两种方式 一.不经过第三方sdk直接调用系统自带的分享       1 ...

  7. 【电气专业知识问答】问:变压器的过流保护构成一般有哪几种方式?

    [电气专业知识问答] 问:变压器的过流保护构成一般有哪几种方式? 答:作为变压器差动保护和瓦斯保护的后备保护,变压器应专设过电流保护.根据灵敏度的不同,一般有以下几种方式. (1)一般的过电流保护.过 ...

  8. Java项目启动时执行指定方法的几种方式

    版权声明:本文为博主原创文章,未经博主允许不得转载.博客源地址为zhixiang.org.cn https://blog.csdn.net/myFirstCN/article/details/8175 ...

  9. 墙面有几种装修方法_装修时墙面处理都有哪几种方式?

    1.使用基层板材,用密度板等板材整面铺墙,但上面再刷上白色乳胶漆,从外表上看不出是用板材装修的,它是使用密度板切割方便.边缘整齐平直的特点,通过板材的拼接来做直线.坑槽等造型,这样处理的墙面既平整.造 ...

最新文章

  1. tensorflow学习笔记(二十五):ConfigProtoGPU
  2. PhiSpy:在细菌基因组中识别噬菌体
  3. DocumentManager 在标签位置显示气泡框 z
  4. html相对路径载入页面,html页面的绝对路径和相对路径
  5. 同步和异步GET,POST请求
  6. [python爬虫] Selenium爬取内容并存储至MySQL数据库
  7. 简易 IM 双向通信电脑端 GUI 应用——基于 Netty、WebSocket、JavaFX 、多线程技术等
  8. xfce4的右键打开终端失效
  9. 优化 Azure 成本,实现财务目标
  10. 5月17日 AJAX 之 XML
  11. SpringBoot yaml的配置及使用
  12. Docker Compose如何与SkyEye完美结合
  13. 将控件关联的变量值传递到另外一个类中的方法
  14. linux+gpio+嵌入式,嵌入式Linux系统中对GPIO操作的方法总结
  15. 算法笔记_面试题_6.二进制/位运算相关
  16. vivo21a点击android版本,VIVO X21A原厂线刷救砖包_内附工具可救砖
  17. c语言数组的斐波那契数列
  18. 解决方案:LoadLibrary加载动态库失败,错误代码126
  19. 无法在此iPhone激活面容ID怎么办?
  20. 谁是最大的竞争对手互联网宝宝军团?

热门文章

  1. 什么是基线(Baseline)?
  2. 针对谷歌浏览器以及谷歌内核的浏览器默认最小字体12px的正确解决方案(实用)
  3. NLP-机器学习-监督学习-回归
  4. python接入excel_使用Python实现Excel数据表导入数据库
  5. [转贴] 网络硬盘“G宝盘”使用体验
  6. entity framework异常: Invalid object name 'dbo.xxxxxx'.
  7. cppm注册职业采购经理国际证书学—集中采购规模优势更大化
  8. 机电行业如何进行信息化建设
  9. zip密码破解的三种方法 轻松解除zip密码
  10. java半角英数check_如何进行全半角英数字记号カナ及汉字的チェック?