这是我参与「第三届青训营 -后端场」笔记创作活动的的第 3 篇笔记。
一、本堂课重点内容:
-
理解 Database/SQL
- Database/SQL 的基本用法
- 设计原理
- 基础概念
-
GORM 的使用简介
- GORM 的基本用法
- Model 定义
- 惯例约定
- 关联介绍
-
GORM 的设计原理
- SQL 生成的机制
- 插件扩展机制
- ConnPool 扩展机制
- Dialector 扩展机制
-
GORM 最佳实践
- GORM 最佳时间
- 定制企业级开发
二、详细知识点介绍:
1. 理解database/sql
1.1 基本用法-Quick Start
3~9行:
import driver实现,使用driver + DSN初始化DB连接
10~14行:
执行一条SQL,荣国rows取返回的数据,处理完毕,需要释放链接
16~26行:
数据、错误处理
28~30行:
处理错误
1.2 设计原理
连接池
连接池配置
连接池状态
操作过程的实现
Driver连接接口
Driver连接接口2
2. GORM基础使用
2.1 背景知识
2.2 基本用法
CRUD
创建
查改删
2.3 模型定义
约定优于配置
2.4关联介绍
CRUD
Preload/Joins预加载
级联删除
3. GORM设计原理
3.1 SQL是怎么生成的
格式转换
GORM API 方法添加Clauses至GORM Statement
GORM Finisher方法执行GORM Statement
自定义Builder
扩展字句
选择字句
3.2 插件是这么工作的
多租户
多数据库、读写分离
3.3 ConnPool是啥
3.4 Dialector是什么
4. GORM最佳实践
4.1 数据序列化与SQL表达式-SQL表达式更新创建
4.2 批量数据操作
批量创建/查询
批量更新
批量数据加速操作
4.3 代码复用、分库分表、Sharding
代码复用
分库分表
Sharding
4.4 混沌工程/压测
4.5 Logger/Trace
4.6 Migrator
数据迁移管理
数据库迁移
4.6 Gen代码生成/RawSql
Gen
RawSql