Go框架三件套(Web/RPC/ORM)|青训营笔记

92 阅读1分钟

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

1.Go三件套简介

  • Gorm

Gorm是一个已经迭代了10年+的功能强大的ORM框架,在字节内部被广泛使用并且拥有非常丰富的开源扩展。

  • Kitex

Kitex是字节内部的Golang微服务RPC框架,具有高性能、强可扩展的主要特点,支持多协议并且拥有丰富的开源扩展。

  • Hertz

Hertz是字节内部的HTTP框架,参考了其他开源框架的优势,结合字节跳动内部的需求,具有高易用性、高性能、高扩展性特点。

2.Go三件套的使用

2.1Gorm的基础使用

2.1.1定义gorm.Model结构体

gorm.Model结构体对应的是数据库中的一张表,结构体中的字段对应数据库中的字段。下图是定义了一个User结构体

image.png

2.1.2为Model定义表名

image.png

2.1.3连接数据库

image.png

2.1.4CRUD

  • Create-增加数据

image.png

处理冲突,下图中为遇到冲突后不处理冲突的代码

image.png

默认值,使用default来设置默认值

image.png

  • Read-查询数据

image.png 28行代码是简单写了个查询条件,找到Name = “小李”的数据

  • Update-更新数据

image.png 更新数据可以使用Update和Updates方法,Update是更新单个字段;Updates可更新多个字段,其中Updates支持结构体和map,区别是结构体只能更新非零值字段,如果想要更新零值字段需要使用map

  • Delete-删除数据

image.png

2.1.4gorm约定

默认情况下,GORM 使用ID作为主键,使用结构体名的蛇形复数作为表名,字段名的蛇形作为列名,并使用CreatedAtUpdatedAt字段作为创建、更新时间