青训营笔记

97 阅读1分钟

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

DATABASE/SQL与GORM设计与实践

1.理解database/sql

image.png 设计原理:

image.png 2.Gorm

"设计简洁,功能强大,自由拓展的全功能ORM"


\

image.png 可以使代码更加简洁。

模型定义:

image.png 软件设计范式:(约定优于配置)

表名为struct name 的 snake_cases复数格式

字段名为field name 的 snake_case单数格式

ID/Id字段为主键,如果为数字,则为自增主键

CreatedAt字段,创建时,保存当前时间

UpdateAt字段,创建,更新时,保存当前时间

Gorm.DeletedAt字段,默认开启soft delete模式

3.GORM设计原理

SQL时怎么生成的

sqlstatement

image.png GORM STATEMENT

image.png 插件是怎么工作的

Finisher Method ->决定Statement类型->执行Callbacks ->生成SQL并执行

create callbacks

image.png ConnPool

image.png

image.png 全局模式,所有DB操作都会预编译并缓存(缓存不含参数部分)

image.png 会话模式,后续会话的操作都会预编译并缓存

image.png 3.最开始的问题

image.png interpolateParams = false

1.执行前预编译sql

2.调用预编译的sql

3.关闭预编译的sql

DIRALECTOR是什么

image.png 定义了怎么去连接数据库