Go框架三件套详解(Web/RPC/ORM)|青训营笔记

46 阅读2分钟

这是我参与「第五届青训营 」笔记创作活动的第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

代码生成工具

实战案例介绍

课程总结