版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
20XX/XX/XXGoORM框架GORM实战汇报人:XXXCONTENTS目录01
GORM基础配置入门02
GORM核心CRUD操作03
GORM关联查询实现04
GORM项目实战案例GORM基础配置入门01Go模块环境下的GORM安装通过goget命令执行gogetgorm.io/gorm,即可快速在Go模块项目中引入GORM核心依赖包。数据库驱动的适配引入需根据使用的数据库类型安装对应驱动,如MySQL需执行gogetgorm.io/driver/mysql来完成驱动引入。依赖版本的指定与锁定可在go.mod文件中指定GORM及驱动的具体版本,防止后续依赖更新引发兼容性问题。GORM安装与依赖引入主流数据库连接配置MySQL数据库连接配置需设置DSN字符串,格式为“用户名:密码@tcp(地址:端口)/数据库名?charset=utf8mb4&parseTime=True&loc=Local”。PostgreSQL数据库连接配置通过设置DSN为“host=地址user=用户名password=密码dbname=数据库名port=端口sslmode=disable”实现连接。SQLite数据库连接配置无需复杂参数,只需指定SQLite数据库文件路径,如“gorm.db”即可完成连接配置。模型结构体定义规则
结构体字段与数据库列映射GORM默认将结构体字段名蛇形化为数据库列名,如UserName对应user_name,也可通过tag自定义映射。
模型主键设置规则默认以ID字段作为主键,若需指定其他字段,可通过gorm:"primaryKey"标签来定义专属主键。
字段零值存储控制若想保留字段零值存入数据库,可添加gorm:"default:0"标签,避免GORM自动忽略零值。GORM核心CRUD操作02使用Create方法单条创建通过db.Create(&User{Name:"张三",Age:28})语句,可快速向数据库插入单条用户数据。使用CreateInBatches方法批量创建调用db.CreateInBatches(users,10),能按批次批量插入多条数据,提升大数量场景下的操作效率。使用Select指定字段创建通过db.Select("Name").Create(&User{Name:"李四",Age:30}),仅向数据库插入指定的Name字段数据。创建数据操作方法单条/批量查询操作单条数据精准查询借助First、Take等方法,可根据ID、唯一标识精准获取单条数据,如查询ID为1的用户信息。批量数据条件查询通过Where设置筛选条件,搭配Find方法批量获取符合要求的数据,如查询所有状态为启用的商品。批量数据分页查询结合Limit和Offset方法实现分页,可高效获取指定范围的批量数据,适用于列表类展示场景。更新数据常用方式
Save方法全量更新调用Save方法可对模型所有字段进行更新,即使字段未修改,如更新用户信息时会覆盖原有未变更字段。
Update方法单字段更新使用Update方法能精准更新单个指定字段,例如执行db.Model(&user).Update("age",28)可仅更新用户年龄。
Updates方法多字段更新借助Updates方法可同时更新多个字段,传入结构体或map即可,如用map更新用户的昵称和邮箱信息。删除数据与软删除配置
物理删除数据通过GORM的Delete方法可执行物理删除,如删除ID为1的用户记录,操作后数据将从数据库中彻底移除。
软删除启用配置在GORM中给模型添加gorm:"softDelete:DeletedAt"标签,即可开启软删除,删除时仅标记删除时间而非移除数据。
软删除数据恢复针对已软删除的数据,可使用Unscoped方法配合Update恢复,比如恢复标记为删除的订单数据至正常状态。
软删除数据查询控制默认查询会过滤软删除数据,若需包含软删除数据,可使用Unscoped方法,如查询所有包含已删除的用户列表。高级查询条件构造
链式条件组合查询通过Where、Or、Not等方法链式调用,可构造复杂查询,如查询年龄大于30或职位为经理的员工。
范围条件查询利用Between、In、Like等方法设置范围,比如查询创建时间在2023年1月至12月的订单数据。
关联条件查询结合Preload与条件筛选,查询拥有特定标签的文章时,可同时加载关联的作者信息。GORM关联查询实现03BelongsTo关联配置
01模型结构体标签设置在结构体字段中通过gorm:"foreignKey:外键列名"标签,指定关联的外键,如User模型中设置gorm:"foreignKey:TeamID"。
02关联外键约束配置可通过gorm:"constraint:OnUpdate:CASCADE,OnDelete:SETNULL"设置外键更新、删除约束,保障数据一致性。
03预加载关联数据配置使用Preload方法预加载BelongsTo关联数据,如db.Preload("Team").First(&user),可一次性查询关联信息。HasOne单关联基础配置通过在模型结构体中嵌入gorm:"foreignKey:UserID"标签,可配置用户与个人档案的一对一关联。HasOne关联外键自定义以用户与收货地址为例,可设置gorm:"foreignKey:OwnerID",将OwnerID设为关联外键而非默认字段。HasMany多关联批量配置在用户模型的Orders字段添加gorm:"foreignKey:BuyerID"标签,可实现用户与多笔订单的一对多关联。HasMany关联预加载设置查询用户时使用Preload("Orders"),可预加载关联订单数据,比如电商平台用户的历史订单批量获取。HasOne/HasMany关联配置ManyToMany多对多配置定义关联模型与中间表需创建包含双方模型外键的中间表,如用户与角色可创建user_roles表,存储user_id和role_id。使用ManyToMany标签声明关联在模型结构体中通过`gorm:"many2many:user_roles;"`标签,建立用户与角色的多对多关联关系。设置关联额外字段与约束可在中间表添加如created_at等字段,通过标签配置外键约束,确保关联数据的完整性与可追溯性。预加载与关联预查询单一关联预加载使用Preload方法可预加载单一关联,如查询用户时预加载其关联的订单,避免N+1查询问题。嵌套关联预加载通过Preload的嵌套语法,可一次性预加载多层关联,例如查询用户时同时预加载订单及订单对应的商品。带条件的关联预查询结合Where子句实现条件预加载,比如仅预加载用户状态为已完成的关联订单,提升查询精准度。GORM项目实战案例04文章表模型构建基于GORM定义文章表结构体,包含标题、内容、发布时间等字段,通过标签映射数据库字段约束。用户与文章关联模型设计利用GORM的关联特性,建立用户表与文章表的一对多关联,实现作者与文章的绑定查询。分类与文章多态关联实现借助GORM的多态关联功能,设计分类表与文章表的关联关系,支持文章多分类归属管理。博客系统数据模型设计核心接口开发实现
数据新增接口开发基于GORM的Create方法实现用户数据新增,如电商平台用户注册场景,完成数据写入与事务处理。
信息查询接口开发利用GORM的First
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026生物基合成燃料对传统汽油发电机燃烧系统兼容性影响评估研报
- 2026生成式AI重构定量包装秤人机交互体验的行业趋势研报
- 2026年大学年级主任工作经验分享课件-以爱育爱用心育人
- 软件项目风险管理课件
- 2026卫生高级职称面审答辩(普通外科)历年参考题库含答案详解
- 2026医技类-临床医学检验临床血液(副高)042历年题库含答案详解
- 2026住院医师规培-天津-天津住院医师规培(眼科)历年参考题库含答案详解
- 2026云南事业单位招聘考试(会计审计基础知识)历年参考题库含答案详解
- 2026事业单位笔试-湖南-湖南心血管内科(医疗招聘)历年参考题库含答案详解
- 2026事业单位笔试-山东-山东血液内科(医疗招聘)历年参考题库含答案详解
- 2026年贵州贵州省粮食储备集团有限公司招聘真题及答案
- GB/T 48133-2026固体矿产绿色勘查规范
- 学习贯彻《中华人民共和国生态环境法典》专题宣讲课件
- 荨麻疹诊疗指南(2025版)
- 2026中国校园直饮水设备使用满意度与改进方向调研报告
- 光伏屋面施工人员培训方案
- 海洋平台涂层耐海洋大气腐蚀技术创新总结报告
- T-COSHA71-2026危险化学品火灾爆炸定量风险评估方法选用指南
- 埋地给水排水玻璃纤维 增强热固性树脂夹砂管 管道工程施工及验收规程
- 《传感器与检测技术》课件 第十四章 误差理论与数据处理
- 迟子建《白雪的墓园》阅读答案
评论
0/150
提交评论