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

113 阅读1分钟

理论上的青训营第四门课的笔记。

理解 database/sql

基本概念

什么是数据库和SQL? - 知乎 (zhihu.com) 数据库(Database, DB)是将大量数据保存起来,通过计算机加工而成的可以进行高效访问的数据集合。

用来管理数据库的计算机系统称为数据库管理系统(Database Management System,DBMS)。

SQL(Structured Query Language,结构化查询语言)是用来操作关系数据库的语言。

SQL语句及其种类:SQL 用关键字、表名、列名等组合而成的一条语句(SQL 语句)来描述操作的内容。关键字是指那些含义或使用方法已事先定义好的英语单词,存在包含“对表进行查询”或者“参考这个表”等各种意义的关键字。

基本用法

Quick Start

90F96AD9041704DDD6F0E0B38656449C.png

DSN

GitHub - go-sql-driver/mysql: Go MySQL Driver is a MySQL driver for Go's (golang) database/sql package

设计原理

image.png

对应超多实践代码。

GORM 基础使用

基本用法

CRUD

模型定义

惯例约定

关联操作

CRUD

Preload/Joins预加载

级联删除

GORM 设计原理

image.png

SQL 的生成

GORM API方法添加Clauses至GORM Statement

GORM Finisher方法执行GORM Statement

image.png

插件的工作

image.png

image.png

GORM 最佳实践

数据序列化与SQL表达式、批量数据操作、代码复用、分库分表、Sharding、混沌工程、Logger / Trace、Migrator、Gen代码生成/Raw sQL、安全。