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

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

一、本堂课重点内容:

  • 理解 Database/SQL

    • Database/SQL 的基本用法
    • 设计原理
    • 基础概念
  • GORM 的使用简介

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

    • SQL 生成的机制
    • 插件扩展机制
    • ConnPool 扩展机制
    • Dialector 扩展机制
  • GORM 最佳实践

    • GORM 最佳时间
    • 定制企业级开发

二、详细知识点介绍:

1. 理解database/sql

1.1 基本用法-Quick Start

image.png

3~9行:
import driver实现,使用driver + DSN初始化DB连接

10~14行:
执行一条SQL,荣国rows取返回的数据,处理完毕,需要释放链接

16~26行:

image.png
数据、错误处理

28~30行:
处理错误

1.2 设计原理

image.png

连接池

image.png

连接池配置
image.png

连接池状态
image.png

操作过程的实现
image.png

Driver连接接口
image.png

image.png

Driver连接接口2

image.png

image.png

image.png

2. GORM基础使用

2.1 背景知识

image.png

2.2 基本用法

image.png

image.png

CRUD
创建
image.png
查改删
image.png

2.3 模型定义

image.png

约定优于配置
image.png

2.4关联介绍

image.png

CRUD
image.png

Preload/Joins预加载
image.png

级联删除
image.png

3. GORM设计原理

image.png

3.1 SQL是怎么生成的

image.png

格式转换
image.png

GORM API 方法添加Clauses至GORM Statement
image.png

GORM Finisher方法执行GORM Statement
image.png

image.png

自定义Builder

image.png

扩展字句

image.png

选择字句

image.png

3.2 插件是这么工作的

image.png

image.png

image.png

image.png

多租户
image.png

多数据库、读写分离
image.png

3.3 ConnPool是啥

image.png

image.png

image.png

image.png

image.png

3.4 Dialector是什么

image.png

image.png

4. GORM最佳实践

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

image.png

image.png

image.png

4.2 批量数据操作

批量创建/查询
image.png

批量更新

image.png

批量数据加速操作

image.png

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

代码复用

image.png

分库分表
image.png

Sharding
image.png

4.4 混沌工程/压测

image.png

image.png

4.5 Logger/Trace

image.png

4.6 Migrator

数据迁移管理
image.png

数据库迁移
image.png

4.6 Gen代码生成/RawSql

Gen
image.png

RawSql
image.png

4.8 安全问题

image.png

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一只小逸白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值