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

71 阅读3分钟

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

下面相关内容仅供本人回顾使用。如有错误,烦请评论反馈,感激不尽!!!

课前纲要:

  • 将前面几节课所学到的知识应用到项目中
  • 掌握Hertz / Kitex / Gorm的基本用法
  • 通过学习实战案例,可以使用Hertz / Kitex / Gorm完成日常后端开发任务

预习知识点: SQL的语句及其种类

  1. DDL(Data Definition Language,数据定义语言)用来创建或者删除存储数据用的数据库以及数据库中的表等对象。 DDL 包含以下几种指令。
    1. CREATE: 创建数据库和表等对象
    2. DROP: 删除数据库和表等对象
    3. ALTER: 修改数据库和表等对象的结构
  2. DML(Data Manipulation Language,数据操纵语言)用来查询或者变更表中的记录。 DML 包含以下几种指令。
    1. CREATE: 创建数据库和表等对象
    2. DROP: 删除数据库和表等对象
    3. ALTER: 修改数据库和表等对象的结构
  3. DCL(Data Control Language,数据控制语言)用来确认或者取消对数据库中的数据进行的变更。除此之外,还可以对 RDBMS 的用户是否有权限操作数据库中的对象(数据库表等)进行设定。 DCL 包含以下几种指令。
    1. COMMIT: 确认对数据库中的数据进行的变更
    2. ROLLBACK: 取消对数据库中的数据进行的变更
    3. GRANT: 赋予用户操作权限
    4. REVOKE: 取消用户的操作权限

SQL的基本书写规则:

    1. SQL语句要以分号(;)结尾;
    2. SQL语句不区分关键字大小写,插入表中的数据区分大小写
    3. 常数的书写方式是固定的,字符串和日期常数需要使用单引号(')括起来,数字常数无需加注单引号(直接书写数字即可);
    4. 单词间需要用半角空格或者换行来分隔,不能使用全角空格作为单词的分隔符;

DSN是数据源名称Data Source Name,是应用程序用来请求与ODBC数据源连接的名称。连接到ODBC时,它会存储连接详细信息,例如数据库名称、目录、数据库驱动程序、UserID、password等。

ORM全称是:Object Relational Mapping(对象关系映射),其主要作用是在编程中,把面向对象的概念跟数据库中表的概念对应起来。

举例来说就是,我定义一个对象,那就对应着一张表,这个对象的实例,就对应着表中的一条记录。

GORM:是Golang语言中一款性能极好的ORM库,对开发人员相对是比较友好的。

GORM特性

  • 全功能 ORM
  • 关联 (Has One,Has Many,Belongs To,Many To Many,多态,单表继承)
  • Create,Save,Update,Delete,Find 中钩子方法
  • 支持 PreloadJoins 的预加载
  • 事务,嵌套事务,Save Point,Rollback To Saved Point
  • Context、预编译模式、DryRun 模式
  • 批量插入,FindInBatches,Find/Create with Map,使用 SQL 表达式、Context Valuer 进行 CRUD
  • SQL 构建器,Upsert,数据库锁,Optimizer/Index/Comment Hint,命名参数,子查询
  • 复合主键,索引,约束
  • Auto Migration
  • 自定义 Logger
  • 灵活的可扩展插件 API:Database Resolver(多数据库,读写分离)、Prometheus…
  • 每个特性都经过了测试的重重考验
  • 开发者友好

Kitex是字节内部的Golang微服务PRC框架。

Hertz是字节内部的HTTP框架。