初始GORM(设计及应用)
持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第2天,点击查看活动详情
首先对于ORM: Object-Relationl Mapping,即对象关系映射,这里的Relationl指的是关系型数据库 它的作用是在关系型数据库和对象之间作一个映射,这样,我们在具体的操作数据库的时候,就不需要再去和复杂的SQL语句打交道,只要像平时操作对象一样操作它就可以了 。
gorm框架是go的一个数据库连接及交互框架,一般用于连接关系型数据库。
GORM设计原理
- 操作过程
SQL的生成
自定义Clause Builder
方便扩展Clause
自由选择Clauses
插件是怎么工作的
- Fiisher Method -> 决定 Statement类型 -> 执行Callbacks -> 生成 SQL并执行
多租户 自动通过租户ID实现操作的过滤。 多数据库、读写分离
ConnPool
理想情况
实际操作
读写分离模式:
举例:
还可通过插件做出扩展
Dialector
解决功能扩展问题
GORM最佳实践
-
- 数据序列化与SQL表达式
- Logger / Trace
- 批量数据操作
- Migrator
- 代码复用、分库分表、Sharding
- Gen 代码生成/Raw sQL
- 混沌工程/压测
- 安全
-
数据序列化与SQL表达式
- SQL表达式查询
- 数据序列化
-
批量数据操作
- 批量创建/查询
- 批量更新
- 批量数据加速操作

浙公网安备 33010602011771号