这是我参与「第五届青训营 」笔记创作活动的第5天
1.Gorm
Gorm基本使用
首先会定义一个结构体(一张数据表),结构体中的变量就是表中的字段
Grom目前支持MySQL、SQLServer、PostgreSQL、SQLite等几种主流数据库
连接SQLServer的实例
GORM创建数据
首先要定义结构体
可以发现这里的结构体字段和数据库字段有一些差别,比如Price对应的是user_id
GORM查询数据
一般来说有两种方式,分别是First和Find
在查询之前,需要定义单个结构体对象或者结构体切片用于接收查询结果
感觉GORM的数据库操作与结构体密不可分
First:用于查询一条数据,若查询不到数据会返回ErrRecordNotFound
Find:用于查询多条数据,查询不到数据不会返回错误,而是返回空内容
GORM更新数据
db.Model
db.Model($结构体{ID:XX}).Where().Update()
GORM删除数据
GORM事务
为了避免用户漏写Commit、Rollback,GROM提供了Tansaction方法用于自动提交事务
GORM性能提高
两种方式,如图:
GORM的一些生态,便于开发
2.Kitex
有关Kitex的相关文档,必须好好补补....
安装(目前对Windows支持不完善。。。
定义IDL
在项目管理时,可以统一使用IDL去管理接口
Kitex生成代码
Kitex服务注册与发现
Kitex生态
3.Hertz——Go的HTTP框架
Hertz的基本使用
Hertz路由
同时Hertz也支持了路由组(Group)的能力,用于支持路由分组的能力
参数路由和通配路由
通过c.Param()方法来获取参数
参数绑定——帮助我们把HTTP请求里面的参数绑定到结构体里面去
Go貌似经常通过指针来接收和传递值
Hertz中间件
中间件:
中间件是一种独立的系统软件服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源,中间件位于客户机服务器的操作系统之上,管理计算资源和网络通信
从这个意义上可以用一个等式来表示中间件:中间件=平台+通信,这也就限定了只有用于分布式系统中才能叫中间件,同时也把它与支撑软件和实用软件区分开来。
简而言之,中间件是基于TCP/IP协议,遵循一定规范的
如图,在定义了h之后,注册路由之前,使用了一个中间件,此处是一个全局的中间件
Hertz Client
Hertz Client提供了HTTP Client用于帮助用户发送HTTP请求
Hertz 代码生成工具
通过定义IDL文件就能自动生成代码???
举例
Hertz性能
其性能高于其他框架的重要原因