这是我参与「第五届青训营 」笔记创作活动的第4天
课程介绍
ORM: Object Relational Mapping, 对象关系映射, 在编程中,把面向对象的概念跟数据库中表的概念对应起来。使用ORM变成,不需要操作表,可以在程序里使用面向对象的思路
三件套的使用
Gorm的基础使用
约定:
- 使用名为ID的字段作为主键
- 使用结构体的蛇形负数作为表名
- 字段名的蛇形作为列名
- 使用CreatedAt、UpdateAt字段作为创建、更新时间
支持的数据库:MySQL、SQLServer、PostgreSQL、SQLite
Gorm创建数据
Gorm查询数据
- 使用First时,需要注意查询不到数据会返回ErrRecordNotFound
- 使用Find查询多条数据,查询不到数据不会返回错误
Gorm更新数据
- 使用struct更新时,只会更新非零值,如果需要更新零值可以使用Map更新或使用Select选择字段
Gorm删除数据
- 物理删除:真正的把数据在数据库里删除,要恢复的话很困难
- 软删除:本质是修改操作,将表中对应的是否删除标识或者状态字段做修改操作。在逻辑上数据是被删除的,但数据本身依然存在库中。
Gorm链式调用
Gorm事务
- Begin 开始事务
- Commit 遇到错误回滚事务
- Rollback 提交事务
- Tansaction用于自动提交事务,避免用户漏写Commit、Rollback
Gorm Hook
- 在创建、查询、更新、删除等操作之后、之前自动调用的函数
- 如果任何Hook返回错误,Gorm将停止后续的操作并回滚事务
Gorm性能提高
- 关闭默认事务
- 使用PrepareStmt缓存预编译语句
Kitex的基础使用
定义IDL
生成代码
基本使用
- 服务默认监听8888端口
Client发起请求
服务注册与发现
- 以对接主流的服务注册与发现中心, 如ETCD、Nacos等
Hertz的基础使用
路由
参数绑定
中间件
HTTP Client
代码生成工具