gorm
文章平均质量分 50
快速学习gorm知识点
枫枫知道
深耕go语言领域2年半
展开
-
8.gorm基础新-配置
本门课程没有在一开始就讲一大堆gorm的配置那是因为尽可能实现约定大于配置如果按照gorm的约定来是编写代码,那么就可以省去很多配置项。原创 2024-10-11 10:21:15 · 240 阅读 · 0 评论 -
7.gorm新-自定义数据类型
json数据用的比较多// Scan 实现 sql.Scanner 接口,Scan 将 value 扫描至 Jsonbif!ok {return err// Value 实现 driver.Valuer 接口,Value 返回 json value注意:这里千万不要自作聪明,去改指针方法或者接受者方法,Scan是指针方法,Value是接受者方法插入数据ID int64Name: "枫枫",Age: 21,Addr: "湖南长沙",原创 2024-10-11 10:17:48 · 535 阅读 · 0 评论 -
6.gorm基础-多表关系(超重要)
就是用户与文章的多对多关系表结构ID int64ID int64重点是many2many:生成表的名称要和第三张表的名称要对上然后joinForeignKey对应的是本表的ID,例如用户表的joinForeignKey就是UserIDJoinReferences对应的是对方表的ID,用户表的JoinReferences就是ArticleID然后就是要添加SetupJoinTable,不然是不会走第三张表的创建钩子// 必须要加这个才会走第三张表的创建钩子然后创建,删除就和之前是一样的了。原创 2024-10-10 10:43:32 · 1027 阅读 · 0 评论 -
5.gorm基础新-单表高级查询
还可以使用高阶函数的特点,实现带参数的scope。take、first、last只会查主键。那么就可以把这些可能被复用的方法抽离出来。很多时候,我们会经常使用重复的查询方法。注意where的顺序,再&函数的前面。可以新建一个字段比较少的结构体。分组之后,需要特定字段的数据。或者可以直接使用Pluck。使用Row来进行查询操作。使用Exec来操作数据。原创 2024-10-10 10:41:16 · 281 阅读 · 0 评论 -
4.gorm基础新-单表模型和单表操作
有很多方法,Save、Update、UpdateColumn、Updates。特别注意:Create函数接收的参数是结构体的指针或者是切片。设置为当前时间,而后的一般查询方法将无法查找到此条记录。通常情况下,我们会使用Model结尾表示它是表的结构体。时,GORM并不会从数据库中删除该记录,而是将该记录的。如果在插入的钩子函数中,返回错误,则数据不会被插入。生成表结构只会新增字段,不会删除字段和更新字段。中),那么该模型将会自动获得软删除的能力。在gorm中,使用结构体表示一张表。字段(该字段也被包含在。原创 2024-10-09 12:19:22 · 757 阅读 · 0 评论 -
3.gorm基础新-gorm引入
gorm的引入肯定是为了我们更好的操作数据库在使用原生sql查询的时候最大的问题就是没办法映射到结构体上我们不难发现,数据库里面的记录就很想一个结构体,数据库的一列对应一个字段所以数据库到结构体的映射就是orm的一个最大特点所有的orm都是如此使用一个类或者一个结构体表示一张表然后使用一个实例化对象表示一条记录字段表示列你品,你细品所以,知道这个关系之后,我们再来看看gorm的用法安装视频里面的版本是 v1.25.12。原创 2024-10-09 12:17:46 · 207 阅读 · 0 评论 -
2.gorm基础新-通过go去操作sql的增删改查
安装驱动。原创 2024-10-08 17:51:21 · 358 阅读 · 0 评论 -
1. gorm基础新——传统sql的增删改查
mysql里面的建库,建表,删库,删表添加记录,查询,删除记录,更新记录这些命令是一定要会的就算我们脱离orm这些,也能直接连上数据库进行操作。原创 2024-10-08 17:49:11 · 283 阅读 · 0 评论 -
gorm基础-9.事务
事务就是用户定义的一系列数据库操作,这些操作可以视为一个完成的逻辑处理工作单元,要么全部执行,要么全部不执行,是不可分割的工作单元。很形象的一个例子,张三给李四转账100元,在程序里面,张三的余额就要-100,李四的余额就要+100 整个事件是一个整体,哪一步错了,整个事件都是失败的gorm事务默认是开启的。为了确保数据一致性,GORM 会在事务里执行写入操作(创建、更新、删除)。如果没有这方面的要求,您可以在初始化时禁用它,这将获得大约 30%+ 性能提升。一般不推荐禁用本节课表结构。原创 2024-09-22 23:51:02 · 254 阅读 · 0 评论 -
gorm基础-8.自定义数据类型
很多情况下我们存储到数据库中的数据是多变的例如我需要存储json或者是数组然后很多数据库并不能直接存储这些数据类型,我们就需要自定义数据类型自定义的数据类型必须实现 Scanner 和 Valuer 接口,以便让 GORM 知道如何将该类型接收、保存到数据库gorm中自定义数据类型无外乎就两个方法在数据入库的时候要转换为什么数据,已经出库的时候数据变成什么样子。原创 2024-09-22 23:50:14 · 362 阅读 · 0 评论 -
gorm基础-7.多对多关系
默认的连接表,只有双方的主键id,展示不了更多信息了这是官方的例子,我修改了一下ID uintID uint这个功能还是很有用的,例如你的文章表 可能叫ArticleModel,你的标签表可能叫TagModel那么按照gorm默认的主键名,那就分别是ArticleModelID,TagModelID,太长了,根本就不实用这个地方,官网给的例子看着也比较迷,不过我已经跑通了主要是要修改这两项joinForeignKey 连接的主键idJoinReferences 关联的主键idID uint。原创 2024-09-22 23:49:06 · 356 阅读 · 0 评论 -
gorm基础-6.一对一关系
一对一关系比较少,一般用于表的扩展例如一张用户表,有很多字段那么就可以把它拆分为两张表,常用的字段放主表,不常用的字段放详情表。原创 2024-09-20 16:17:25 · 218 阅读 · 0 评论 -
gorm基础-5.一对多关系
我们先从一对多开始多表关系的学习因为一对多的关系生活中到处都是例如一对多关系 表结构建立在gorm中,官方文档是把一对多关系分为了两类,Belongs To 属于谁Has Many 我拥有的他们本来是一起的,本教程把它们合在一起讲我们以用户和文章为例一个用户可以发布多篇文章,一篇文章属于一个用户关于外键命名,外键名称就是关联表名+ID,类型是uint这里有个地方要注意我改了Article 的外键,将UID作为了外键,那么User这个外键关系就要指向UID与此同时,User所拥有的Art原创 2024-09-20 16:11:44 · 338 阅读 · 0 评论 -
gorm基础-4.单表高级查询
重新构造一些数据用于查询。原创 2024-09-20 16:10:12 · 326 阅读 · 0 评论 -
gorm基础-3.单表查询
先使用gorm对单张表进行增删改查表结构。原创 2024-09-20 16:07:04 · 269 阅读 · 0 评论 -
gorm基础-2.模型定义
模型是标准的 struct,由 Go 的基本数据类型、实现了Scanner和Valuer接口的自定义类型及其指针或别名组成定义一张表常识:小写属性是不会生成字段的。原创 2024-09-20 16:05:15 · 167 阅读 · 0 评论 -
gorm基础-1.gorm连接mysql
需要下载mysql的驱动。原创 2024-09-20 16:04:20 · 226 阅读 · 0 评论