使用 GORM进行多表连接查询 实践 | 青训营

前言

最近一直跟着青训营学习,然后自己也动手搭建了一个项目,下面就来对GORM这个工具的使用做一个简单的总结和小笔记

正文

一、引入GORM

go 复制代码
go get -u gorm.io/gorm

二、配置数据库

编写yml文件

创建一个结构体,用来读取配置文件中的数据库信息

创建一个init方法,进行数据库的初始化

最后在主函数中,加载配置

三、进行多表联查

我们这里举一个简单的例子,比如查询视频表和用户表的相关信息,进行左连接,查出视频信息以及视频发布者的信息,通过视频表中记录的创建用户id来进行关联

这里主要是根据GORM的文档来进行编写:

Table表示要查询的表

Select表示要查询的字段

Joins表示要连接的表以及连接的条件

Where表示最后的一个条件

最后我们可以通过Scan来绑定查询的结果

注意这里要传入的是指针类型,而不是变量,否则会报错

这样就可以完成一个语句的查询

当然也可以直接使用Raw这种方式,这种方式就是简单粗暴,直接用字符串拼接sql,就是看大家的选择了,个人认为,还是上面的这种方式比较好

因为直接拼接字符串的话,还得考虑空格问题,否则会导致最后出来的sql报错

结语

今天开始最后的项目阶段了,希望可以和自己的组员好好配合,做出一个不错的项目,为这次青训营交出一个满意的答卷!

相关推荐
千慌百风定乾坤16 小时前
Go 语言入门指南:基础语法和常用特性解析(下) | 豆包MarsCode AI刷题
青训营笔记
FOFO16 小时前
青训营笔记 | HTML语义化的案例分析: 粗略地手绘分析juejin.cn首页 | 豆包MarsCode AI 刷题
青训营笔记
滑滑滑2 天前
后端实践-优化一个已有的 Go 程序提高其性能 | 豆包MarsCode AI刷题
青训营笔记
柠檬柠檬3 天前
Go 语言入门指南:基础语法和常用特性解析 | 豆包MarsCode AI刷题
青训营笔记
用户967136399653 天前
计算最小步长丨豆包MarsCodeAI刷题
青训营笔记
用户52975799354723 天前
字节跳动青训营刷题笔记2| 豆包MarsCode AI刷题
青训营笔记
clearcold4 天前
浅谈对LangChain中Model I/O的见解 | 豆包MarsCode AI刷题
青训营笔记
夭要7夜宵4 天前
【字节青训营】 Go 进阶语言:并发概述、Goroutine、Channel、协程池 | 豆包MarsCode AI刷题
青训营笔记
用户336901104444 天前
数字分组求和题解 | 豆包MarsCode AI刷题
青训营笔记
dnxb1234 天前
GO语言工程实践课后作业:实现思路、代码以及路径记录 | 豆包MarsCode AI刷题
青训营笔记