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

282 阅读1分钟

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

image-20220515141646295

1. 理解 Database/SQL

1.1 基本用法

image-20220515102546309

1.2 设计原理

image-20220515102812588

连接池:

image-20220515103029658

image-20220515103137036

image-20220515103149995

image-20220515104220058

Drive连接接口

image-20220515104733301

image-20220515104827436

Drive 连接接口2:

image-20220515105219794

image-20220515105306637

image-20220515105708062

2. GORM 的使用简介

2.1 背景知识

设计简洁、功能强大、自由扩展的全功能ORM

image-20220515125607637

2.2 GORM 的基本用法

image-20220515125758418

image-20220515125810158

CRUD创建

image-20220515125726622

image-20220515125839838

2.3 模型定义

image-20220515130210561

模型定义-惯例约定

image-20220515130904114

2.4 关联介绍

image-20220515131032418

2.4.1 关联介绍-CRUD

image-20220515131225853

2.4.2 关联操作-Preload/Joins预加载

image-20220515131251976

2.4.3 关联操作-级联删除

image-20220515131434212

总结:

  • GORM 的基本用法
  • Model 定义
  • 惯例约定
  • 关联介绍

3. GORM 的设计原理

image-20220515131729997

image-20220515131825278

3.1 SQL 是怎么生成的

image-20220515132233903

image-20220515132213537

image-20220515132739038

image-20220515132915164

image-20220515132938956

3.1.1 SQL 是怎么生成的-自定义Builder

image-20220515133141051

3.1.2 SQL 是怎么生成的-扩展子句

image-20220515133700873

3.1.3 SQL 是怎么生成的-选择子句

image-20220515133936037

3.2 插件是怎么工作的

image-20220515134006410

image-20220515134251275

image-20220515134346334

image-20220515134320950

3.2.1 插件是怎么工作的-多租户

image-20220515134543271

3.2.2 插件是怎么工作的-多数据库、读写分离

image-20220515134745013

3.3 ConnPool是什么

image-20220515134856811

image-20220515134945304

image-20220515135149702

image-20220515135257462

image-20220515135352894

image-20220515135534484

image-20220515135621839

3.4 Dialector是什么

image-20220515135745949

image-20220515135804600

小结:

  • SQL 生成的机制
  • 插件扩展机制
  • ConnPool 扩展机制
  • Dialector 扩展机制

4. GORM 最佳实践

image-20220515135947703

4.1 数据序列化与SQL表达式-SQL表达式更新创建

image-20220515140159030

image-20220515140324465

image-20220515140230601

4.2 批量数据操作

4.2.1 批量数据操作-批量创建/查询

image-20220515140433607

4.2.2 批量数据操作-批量更新

image-20220515140514561

4.2.3 批量数据操作-批量数据加速操作

image-20220515140556597

4.3 代码复用、分库分表、Sharding

4.3.1 代码复用

image-20220515140715443

4.3.2 分库分表

image-20220515140740962

4.3.3 Sharding

image-20220515140823699

4.4 混沌工程/压测

image-20220515141013610

image-20220515140954601

4.5 Logger/Trace

image-20220515141222339

4.6 Migrator

4.6.1 Migrator-数据迁移管理

image-20220515141238145

4.6.2 Migrator-数据库迁移

image-20220515141344644

4.7 Gen代码生成/RawSql

4.7.1 RawSql

image-20220515141407466

4.7.2 Gen

image-20220515141450882

4.8 安全问题

image-20220515141600960

小结:

  • GORM 最佳实践

  • 定制企业级开发

  • FAQ & 工程成长