go语言学习10 | 青训营笔记

44 阅读2分钟

这是我参与「第五届青训营」伴学笔记创作活动的的第10天

go语言sql和gorm

sql

1.Quick Start

1.用import driver 实现,使用driver + DSN初始化DB连接。

2.执行一条SQL,通过rows取回返回的数据处理完毕,需要释放链接。

3.进行数据和错误的处理。

2.设计原理

应用程序通过操作接口链接database/sql。

DB连接的几种类型:

1.直接连接/Conn

2.预编译/Stmt

3.事务/Tx

database/sql通过连接接口或操作接口链接数据库。

gorm基础使用

1.介绍

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

设计原则:API精简、测试优先、最小惊讶、灵活扩展、无依赖、可信赖。

功能完善:

1.关联:一对一、一对多、单表自关联、多态;Preload、Joins预加载、级联删除;关联模式;自定义关联表。

2.事务:事务代码块、嵌套事务、Save Point。

3.多数据库、读写分离、命名参数、Map、子查询、分组条件、代码共享、SQL表达式(查询、创建、更新)、自动选字段、查询优化器。

4.字段权限、软删除、批量数据处理、Prepared Stmt、自定义类型、命名策略、虚拟字段、自动track时间、SQL Builder、Logger。

5.代码生成、复合主键、Constraint、Prometheus、Auto Migration、真·跨数据库兼容……

6.多模式灵活自由扩展。

7.Developer Friendly。

2.基本用法

CRUD:

1.操作数据库

2.创界表结构、字段等(可以用批量创建)

3.模型定义

惯例约定:

1.表名为struct name的 snake_cases复数格式。

2.字段名为field name的snake_case单数格式。

3.ID/ld字段为主键,如果为数字,则为自增主键。

4.CreatedAt字段,创建时,保存当前时间。

5.UpdatedAt字段,创建、更新时,保存当前时间。

6.gorm.DeletedAt字段,默认开启soft delete模式。

4.关联操作

1.CRUD

2.Preload/Joins预加载

3.级联删除:使用数据库约束或用Select实现