持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第22天,点击查看活动详情
GORM设计原理
- 操作过程
SQL的生成
自定义Clause Builder
方便扩展Clause
自由选择Clauses
-
主要是因为不同的数据库甚至不同版本的数据库支持的SQL不同,GORM这么处理之后就可以很方便的解决这个问题。
-
方便扩展子句
插件是怎么工作的
- Fiisher Method -> 决定 Statement类型 -> 执行Callbacks -> 生成 SQL并执行
多租户 自动通过租户ID实现操作的过滤。 多数据库、读写分离
ConnPool
理想情况
实际操作
读写分离模式:
举例:
还可通过插件做出扩展
Dialector
解决功能扩展问题
GORM最佳实践
-
数据序列化与SQL表达式
- SQL表达式查询
- 数据序列化
-
批量数据操作
- 批量创建/查询
- 批量更新
- 批量数据加速操作