理解database及GORM | 青训营笔记

150 阅读1分钟

理解database/sql

1.1 基本用法-Quic

1.2 设计原理

应用程序(操作接口) database/sql(连接接口,操作接口)数据库
DB连接的类型:
直接连接/Conn
预编译/Stmt
事务/Tx
处理返回数据的几种方式
Exec/ExecContext -> Result
Query/QueryContext -> Rows(Columns)
QueryRow/QueryRowContext -> Rows(Rows 简化)<br>

GORM使用简介

2.1 背景知识

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

2.2 基本用法-crud

//操作数据库
//创建
//更新某个字段
...

2.3 模型定义

type User struct{
ID uint
...
}
type Model struct{
ID uint
...
}

2.3 模型定义 - 惯例约定

约定优于配置 表名为struct name 的 snake_cases 复数格式

2.4 关联介绍

2.4 关联操作-CRUD

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

2.4 关联操作 - 级联删除

GORM设计原理

3.1 SQL是怎么生成的

db.Where().Where().Limit().Order().Find()
自定义 Clause Bullder
扩展 Clause
自由选择 Clauses

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

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

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

3.2 插件是怎么工作的

(灵活定制、自由扩展)

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

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

3.3 ConnPool

3.4 Dialector

GORM最佳实践

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

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

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

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

4.3 代码复用、分库分表、SHARDING - 代码复用

4.3 代码复用、分库分表、SHARDING - 分库分表

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

4.4 混沌工程 / 压测

4.5 Logger / Trace

4.6 Migrator - 数据库迁移管理

4.7 Gen 代码生成 / Raw SQL - Raw SQL

4.7 Gen 代码生成 / Raw SQL - Raw Gen

4.8 安全问题

总结:整体过了一遍,还是需要看源码