三件套基础使用
Gorm
默认约定
- Gorm使用名为ID的字段作为主键
- 使用结构体的蛇形负数作为表名
- 字段名的蛇形名作为列名
- 使用CreatedAt,UpdatedAt字段作为创建、更新时间
创建数据
官方文档提供了详细信息
查询数据
查询方法
First返回一条数据,如果查询不到数据会返回ErrRecordNotFound- 使用Find查询多条数据,查询不到数据不会返回错误
- 通过
db.Where来限定查询条件 db.Where支持使用结构体作为查询条件。当使用结构体作为条件查询时,GORM只会查询非零值字段,意味着如果字段值为0、False或者其他零值,该字段不会被用于构建查询条件,使用Map来构建查询条件。
更新数据
删除数据
物理删除
直接使用db.Delete
软删除
GORM提供了gorm.DeletedAt实现软删除。在结构体中定义出。
使用Unscoped可以查询到被软删的数据
Gorm事务
Gorm提供了Begin,Commit,Rollback方法使用事务
提供了Tansaction方法用于自动提交事务
HOOK
Hook是在创建,查询,更新,删除等操作之前,之后自动调用的函数
Kitex
使用IDL定义服务与接口
如果要进行RPC,就需要知道对方的接口是什么,需要传什么参数,同时也需要知道返回值是什么样的。这时候就需要通过IDL来约定双方协议。就像在写代码的时候调用某一个函数时候需要知道函数签名。
使用kitex -module example -service example echo.thrift命令生成代码
Kitex基本使用
服务默认监听8888端口
Kitex 服务注册与发现
Hertz
Go语言的HTTP框架
使用Hertz实现,服务监听8080端口并注册了一个GET方法的路由函数。
Hertz提供了GET、POST、DELETE、ANY等方法注册路由
笔记项目
笔记项目是一个使用Hertz,Kitex,Gorm搭建的具有一定业务逻辑的后端API项目。
项目功能介绍
项目调用关系
技术框架