这是我参与「第五届青训营 」伴学笔记创作活动的第 5天
一:GORM
Gorm是ORM框架,这不就明白它大致是做什么了。ORM框架是连接数据库的桥梁,只要提供了持久化类与表的映射关系,ORM框架在运行时就能参照映射文件的信息,把对象持久化到数据库中。
个人觉得Gorm与goframe框架中的orm操作相比,有些落后。gf框架用tool gf gen dao后自动将数据库中的结构映射到结构体,并且为每个结构体定义了基础操作的方法。这就不用在代码中再手动去加orm结构体
func (s *CertifiCate_router) Find_all(c *gin.Context) {
var mod []*CertifiCate
db.Table("certificate").Find(&mod)
c.JSON(200, re(200, "ok", mod))
return
}
func (s *CertifiCate_router) Deleted(c *gin.Context) {
mod := new(CertifiCate)
c.ShouldBind(&mod)
db.Table("certificate").Delete(&mod)
c.JSON(200, re(200, "ok", nil))
}
db.Table("certificate").Where("id_number=? AND grade=?", mod.Id_number, mod.Grade).Find(&find)
func (s *Grade_examination) Edit(c *gin.Context) {
mod := new(Grade_phone)
c.BindJSON(&mod)
db.Table("instructor").Where("id=?", mod.Id).Updates(&mod)
c.JSON(200, re(200, "ok", nil))
}
以上是基础的增删改查操作
1.自动事务处理
通过 db.Transaction 函数实现事务,如果闭包函数返回错误,则回滚事务。 在事务中执行一些 db 操作(从这里开始,您应该使用 'tx' 而不是 'db') 返回任何错误都会回滚事务
GORM性能提高
GORMHook
Kitex rpc框架
客户端在不知道调用细节的情况下,调用存在于远程计算机上的某个对象,就像调用本地应用程序中的对象一样。 比较正式的描述是:一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。 所以说RPC是一种协议一套规范,用来远程过程调用的。也就是说两台服务器A,B,一个应用部署在A服务器上,想要调用B服务器上应用提供的函数/方法,由于不在一个内存空间,不能直接调用,需要通过网络来表达调用的语义和传达调用的数据。
Kitex 是一个 RPC 框架,既然是 RPC,底层就需要两大功能:
Kitex框架和命令行工具,默认支持thrift和proto3两种LDL ,传输上kitex使用扩展的thrift作为底层的传输协议。IDL 全称是 Interface Definition Language,接口定义语言