Go框架三件套 | 青训营笔记

74 阅读2分钟

Go框架三件套(Web/RPC/ORM)

Gorm

Object-Relationl Mapping,连接数据库的桥梁,只要提供了持久化类与表的映射关系,ORM框架在运行时就能参照映射文件的信息,把对象持久化到数据库中,这样,我们在具体的操作数据库的时候,就不需要再去和复杂的SQL语句打交道,只要像平时操作对象一样操作它就可以了。即Gorm是go语言中实现对象和数据库映射的框架(主要是把 struct类型 和 数据库表 进行映射,使用简单方便),可以有效地提高开发数据库应用的效率

·Gorm的基本使用

o定义gorm model

o为model定义表名

o连接数据库

o创建数据

o查询数据

o更新数据

o删除数据

·Gorm支持的数据库

oGorm目前支持MySQL、SQLServer、PostgreSQL

oGorm通过驱动来连接数据库,如果需要连接其它类型的数据库,可以复用/自行开发驱动

·Gorm 创建数据

o如何使用 Upsert ?

o如何使用默认值?

·Gorm 查询数据

·Gorm 更新数据

·Gorm 删除数据

物理删除:db.Delete(),真的在删除了。 软删除:gorm.DeletedAt(),拥有软删除能力的 Model 调用 Delete 时,记录不会被从数据库中真正删除。但 GORM 会将 DeletedAt 置为当前时间,并且你不能再通过正常的查询方法找到该记录。使用Unscoped可以查询到被软删的数据 。

·Gorm 事务

oGrom 提供了Begin、Commit、Rollback方法用于使用事务

oGrom 提供了Tansaction 方法用于自动提交事务,避免用户漏写Commit、Rollback、Gorm Hook

oGorm 在提供了CURD的 Hook 能力

oHook是在创建、查询、更新、删除等操作之前、之后自动调用的函数

o如果任何Hook返回错误,Gorm将停止后续的操作并回滚事务

Kitex

· 安装Kitex代码生成工具

· 定义IDL

o 使用IDL定义服务与接口

· Kitex生成代码

o 使用 kitex -module example -service example echo.thrift 命令生成代码

· Kitex 基本使用

o 服务默认监听8888端口

· Kitex Client 发起请求

o 创建Client

o 发起请求

· Kitex 服务注册与发现

o 目前Kitex的服务注册与发现已经对接了主流的服务注册与发现中心,如ETCD,Nacos等

· Kitex 生态

Hertz

o Hertz提供了GET、POST、PUT、DELETE、ANY等方法用于注册路由

o Hertz提供了路由器(Group)的能力,用于支持路由分组的功能。

o Hertz提供了参数路径和通配路由,路由的优先级为:静态路由 > 命名路由 > 通配路由

· Hertz 参数绑定

o Hertz 提供了Bind、Validate、BindAndValidate函数用于进行参数绑定和校验

· Hertz 中间件

o Hertz的中间件主要分为客户端中间件和服务端中间件。