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

92 阅读2分钟

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

一、本堂课重点内容:

  • Go框架三件套介绍
  • Gorm、Hertz、Kitex的基本用法与常见API
  • 三件套实战案例

二、详细知识点介绍:

  • 三件套简介

    • Gorm是迭代了10+年的强大ORM框架
    • Kitex是Golang微服务RPC框架,高性能、强拓展性
    • Hertz是Golang开源的Http框架,高易用性、高性能、高扩展性
  • 三件套基础使用

    • Gorm
      • 使用结构体对应数据库中的表
      • 通过dsn字符串来连接数据库 user:password@tcp(host:port)/dbname?charset=utf8
      • create 创建数据
      • first find 查询数据
      • 使用first查询数据 如果没有数据,会返回ErrRecordNotFound
      • 使用find查询 如果没有数据 不会返回错误
      • 查询时 如果使用结构体作为查询条件 gorm只会将非零值作为条件进行查询 否则不会被构成查询条件
      • Update Updates(传递map可以更新零值) 来更新数据
      • 如果使用结构体作为参数传入 则只会更新非零值
      • 使用select来更新选定字段
      • Delete 删除数据(物理删除)
      • gorm 提供了 DeleteAt 来使用软删
      • 在增删改数据时遇到数据冲突 使用 clause.OnConflict()来处理冲突
      • db.Begin() 开启事务 Rollback 回滚 Commit 提交事务
      • 要使用begin返回的对象来进行接下来的操作
      • Hook 是在创建、查询、更新、删除等操作之前、之后自动调用的函数 (会自动开启事务)
      • 可以使用SkipDefaultTransaction来关闭默认事务 提高性能
      • 使用PrepareStmt 缓存预编译来提高后续调用速度
    • kitex
      • 首先使用IDL定义服务与接口
      • 使用kitex -module example -sevice example echo.thrift
      • 在生成文件中的handler.go来编写业务代码
      • 能够对接主流的服务注册与发现中心 etcd等
    • Hertz
      • 使用new 或 default 新建hertz对象
      • 支持参数路由、通配路由 优先级:静态路由>参数路由(:)>通配路由(*)

三、课后个人总结:

通过本节课 了解了go框架三件套的介绍,简单的了解了三件套的用法以及优点

通过一个小项目简单的掌握了三件套的使用