O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.
GORM 剖析与最佳实践- 2
by JINZHU
GORM - The fantastic ORM library for Golang
2020-12
ABOUT ME
Github @jinzhu
字节跳动 @zhangjinzhu
GORM https://github.com/go-gorm/gorm
https://gorm.io (⽂档)
https://gorm.cn(国内 CDN...
GORM 基本介绍
“ 设计简洁、功能强⼤、⾃由扩展的全功能 ORM ”
• 设计原则:API 精简、测试优先、最⼩惊讶、灵活扩展、⽆依赖 可信赖
• 功能完善:
• 关联:⼀对⼀、⼀对多、单表⾃关联、多态关联;Preload、Joins 预加...
GORM 基本介绍 - 初始化
CRUD - CREATE
CRUD - BATCH CREATE
CRUD - Upsert & OnConflict
CRUD - 加速 CREATE
CRUD - Create / Update 使⽤ SQL 表达式(⾃定义数据类型)
CRUD - Create 使⽤默认值
CRUD - Create / Update 零值问题
CRUD - 批量更新
CRUD - Update 使⽤ SQL 表达式 / SubQuery
CRUD - Update 检查字段有⽆修改
CRUD - 关联的 Create / Update
CRUD - 关联模式
CRUD - 关联的级连删除
CRUD - 软删除
CRUD - Query
CRUD - 条件查询
CRUD - Query with SELECT
CRUD - SubQuery / Group Conditions
CRUD - 使⽤ SQL 表达式查询
CRUD - Query Clauses (查询优化器 / Comments / Locking)
CRUD - SQL Builder & 批量处理
CRUD - 命名参数
CRUD - 关联 Preload / Joins 预加载
To Be Continue - Checklist
• Conventions
• Model Field Tags
• 多字段的时间追踪 (Unix Seconds/Milli/Nano Seconds)
• 字段读写权限权限
• Quer...
Q&A
GORM 剖析与最佳实践
Próximos SlideShares
Carregando em…5
×

Gorm

GORM @ 开源说介绍

视频:https://www.bilibili.com/video/BV1ST4y1T7NR

  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Gorm

  1. 1. GORM 剖析与最佳实践- 2 by JINZHU GORM - The fantastic ORM library for Golang 2020-12
  2. 2. ABOUT ME Github @jinzhu 字节跳动 @zhangjinzhu GORM https://github.com/go-gorm/gorm https://gorm.io (⽂档) https://gorm.cn(国内 CDN) Jinzhu / 张⾦柱
  3. 3. GORM 基本介绍 “ 设计简洁、功能强⼤、⾃由扩展的全功能 ORM ” • 设计原则:API 精简、测试优先、最⼩惊讶、灵活扩展、⽆依赖 可信赖 • 功能完善: • 关联:⼀对⼀、⼀对多、单表⾃关联、多态关联;Preload、Joins 预加载;关联模式 • 事务:嵌套事务, Save Point • Hooks、Callbacks ⾃由扩展 • 多数据库、读写分离、Prometheus、Prepared Stmt、查询优化器、批量数据处理、代码共享、⼦查询、DryRun • SQL Builder、Smart Migration、复合主键、⾃定义类型 (JSON等)、SQL 表达式查询创建更新、虚拟字段… • 真 • 跨数据库兼容
  4. 4. GORM 基本介绍 - 初始化
  5. 5. CRUD - CREATE
  6. 6. CRUD - BATCH CREATE
  7. 7. CRUD - Upsert & OnConflict
  8. 8. CRUD - 加速 CREATE
  9. 9. CRUD - Create / Update 使⽤ SQL 表达式(⾃定义数据类型)
  10. 10. CRUD - Create 使⽤默认值
  11. 11. CRUD - Create / Update 零值问题
  12. 12. CRUD - 批量更新
  13. 13. CRUD - Update 使⽤ SQL 表达式 / SubQuery
  14. 14. CRUD - Update 检查字段有⽆修改
  15. 15. CRUD - 关联的 Create / Update
  16. 16. CRUD - 关联模式
  17. 17. CRUD - 关联的级连删除
  18. 18. CRUD - 软删除
  19. 19. CRUD - Query
  20. 20. CRUD - 条件查询
  21. 21. CRUD - Query with SELECT
  22. 22. CRUD - SubQuery / Group Conditions
  23. 23. CRUD - 使⽤ SQL 表达式查询
  24. 24. CRUD - Query Clauses (查询优化器 / Comments / Locking)
  25. 25. CRUD - SQL Builder & 批量处理
  26. 26. CRUD - 命名参数
  27. 27. CRUD - 关联 Preload / Joins 预加载
  28. 28. To Be Continue - Checklist • Conventions • Model Field Tags • 多字段的时间追踪 (Unix Seconds/Milli/Nano Seconds) • 字段读写权限权限 • Query 的⼀些 API: Pluck, FirstOrInit, FirstOrCreate (Assign, Attrs) • 关联定义(⼀对⼀,多对多,⼀对多,单表⾃关联,多态)、⾃定义 foreign key, reference、复合外键、⾃定义 JoinTable • ⾃定义数据类型 • WithContext • Error 处理 • Set、Get、InstanceSet、InstanceGet • Clause / Statement • Hooks / Callbacks • 不同数据库连接参数 / ⾃定义 driver / 使⽤现有连接 / 如何扩展 / 数据库连接池 • 分库分表 / 代码共享 • 读写分离 / 多数据库 • Transactions, Nested Transactions, Save Point, RollbackTo to Saved Point • Logger • gorm.Config • Session 模式 • Embedded Struct • 修改默认命名策略 • DryRun Mode • 复合主键 • Indexes / Checker / Constraints • Method Chain 安全性 • Prometheus • SQL 注⼊安全性 • Migration • …
  29. 29. Q&A GORM 剖析与最佳实践

×