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

前言

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

正文

一、引入GORM

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

二、配置数据库

编写yml文件

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

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

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

三、进行多表联查

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

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

Table表示要查询的表

Select表示要查询的字段

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

Where表示最后的一个条件

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

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

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

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

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

结语

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

相关推荐
Find1 个月前
MaxKB 集成langchain + Vue + PostgreSQL 的 本地大模型+本地知识库 构建私有大模型 | MarsCode AI刷题
青训营笔记
理tan王子1 个月前
伴学笔记 AI刷题 14.数组元素之和最小化 | 豆包MarsCode AI刷题
青训营笔记
理tan王子1 个月前
伴学笔记 AI刷题 25.DNA序列编辑距离 | 豆包MarsCode AI刷题
青训营笔记
理tan王子1 个月前
伴学笔记 AI刷题 9.超市里的货物架调整 | 豆包MarsCode AI刷题
青训营笔记
夭要7夜宵1 个月前
分而治之,主题分片Partition | 豆包MarsCode AI刷题
青训营笔记
三六1 个月前
刷题漫漫路(二)| 豆包MarsCode AI刷题
青训营笔记
tabzzz1 个月前
突破Zustand的局限性:与React ContentAPI搭配使用
前端·青训营笔记
Serendipity5651 个月前
Go 语言入门指南——单元测试 | 豆包MarsCode AI刷题;
青训营笔记
wml1 个月前
前端实践-使用React实现简单代办事项列表 | 豆包MarsCode AI刷题
青训营笔记
用户44710308932421 个月前
详解前端框架中的设计模式 | 豆包MarsCode AI刷题
青训营笔记