设计模式之 Database/SQL 与 GORM 实践 | 青训营笔记

102 阅读1分钟

这是我参与「第三届青训营 -后端场」笔记创作活动的的第1篇笔记

image.png

理解database/sql

设计原理

image.png

gorm使用简介

“设计简洁、功能强大、自由扩展的全功能ORM " 设计原则:API精简、测试优先、最小惊讶、灵活扩展、无依赖可信赖功能完善: 关联:一对一、一对多、弟表自关联、多态;Preload、Joina预加载、级联删除;关联模式;自定义关联表事务:事务代码块、嵌套事务、Save Point

多数据库、读写分高、命名参数、Map、子查询、分组条件、代码共享、SQL表达式(查询、创建、更新)、自动选宇段、查询优化器宇字段权限、软删除、批量数据处理、Prepared Stmt、自定义类型、命名策略、虚拟宇段、自动track时间、SQL Builder、Logger代码生成、复合主键、Conatraint、Prometheu8、Auto Migration、真·跨数据库兼容... 多模式灵活自由扩展

-Developer Friendly

约定优于配置 表名为struct name的snake_cases复数格式字段名为field name的snake_case单数格式 ID/d字段为主键。如果为数字,则为自增主键 CreatedAt字段,创建时,保存当前时间 UpdatedAt字段。创建、更新时,保存当前时间gorm.DeletedAt字段,默认开启soft delete模式

image.png

image.png

image.png

gorm设计原理 SQL是怎么生成的 自定义 Clause Builder 方便扩展Clause 自由选择Clauses

插件是怎么工作的

image.png

ConnPool是什么 image.png

Dialector

image.png

gorm最佳实践

image.png