这是我参与「第三届青训营 -后端场」笔记创作活动的的第2篇笔记
DATABASE/SQL与GORM设计与实践
1.理解database/sql
设计原理:
2.Gorm
"设计简洁,功能强大,自由拓展的全功能ORM"
\
可以使代码更加简洁。
模型定义:
软件设计范式:(约定优于配置)
表名为struct name 的 snake_cases复数格式
字段名为field name 的 snake_case单数格式
ID/Id字段为主键,如果为数字,则为自增主键
CreatedAt字段,创建时,保存当前时间
UpdateAt字段,创建,更新时,保存当前时间
Gorm.DeletedAt字段,默认开启soft delete模式
3.GORM设计原理
SQL时怎么生成的
sqlstatement
GORM STATEMENT
插件是怎么工作的
Finisher Method ->决定Statement类型->执行Callbacks ->生成SQL并执行
create callbacks
ConnPool
全局模式,所有DB操作都会预编译并缓存(缓存不含参数部分)
会话模式,后续会话的操作都会预编译并缓存
3.最开始的问题
interpolateParams = false
1.执行前预编译sql
2.调用预编译的sql
3.关闭预编译的sql
DIRALECTOR是什么
定义了怎么去连接数据库