这是我参与「第三届青训营 -后端场」笔记创作活动的的第5篇笔记.
DATABASE/SQL与GORM的设计与实践
一、理解database/sql
1.1 代码分析
使用driver+DSN初始数据化连接
执行一条SQL,通过rows取回返回的数据,进行内存释放
数据、错误处理
1.2 设计原理
连接池的操作使用池化技术,是一个编程技巧
可以方便从池子取值,同时提供垃圾回收等功能,能够提高服务的性能
Driver连接接口
DB连接的几种类型
- 直接连接Conn
- 预编译Stmt
- 事务Tx
数据返回的几种方式
- Exec/ExecContext -> Result
- Query/QueryContext -> Rows(Columns)
- QueryRow/QueryRowContext -> Row(Rows简化)
二、 Gorm基础使用
“设计简洁、功能强大、自由扩展的全功能ORM”
基本用法CRUD
模型定义
这个包可以处理稍微处理一点复杂的逻辑。
- 表明为struct name的 snake_cases复数格式
- 字段名为field name 的 snake_case单数格式
- ID字段为主键,如果为数字,则为自增主键
- CreateAt字段,创建时保留当前的时间
- UpdatedAt字段,创建更新时,保存当前时间
- gorm.DeleteAt字段,默认开启soft delete模式
关联介绍
CURD
Preload/Join预加载