这是我参与「第五届青训营」伴学笔记创作活动的第 12 天
下面相关内容仅供本人回顾使用。如有错误,烦请评论反馈,感激不尽!!!
课前纲要:
- 将前面几节课所学到的知识应用到项目中
- 掌握Hertz / Kitex / Gorm的基本用法
- 通过学习实战案例,可以使用Hertz / Kitex / Gorm完成日常后端开发任务
预习知识点: SQL的语句及其种类:
- DDL(Data Definition Language,数据定义语言)用来创建或者删除存储数据用的数据库以及数据库中的表等对象。 DDL 包含以下几种指令。
-
- CREATE: 创建数据库和表等对象
- DROP: 删除数据库和表等对象
- ALTER: 修改数据库和表等对象的结构
- DML(Data Manipulation Language,数据操纵语言)用来查询或者变更表中的记录。 DML 包含以下几种指令。
-
- CREATE: 创建数据库和表等对象
- DROP: 删除数据库和表等对象
- ALTER: 修改数据库和表等对象的结构
- DCL(Data Control Language,数据控制语言)用来确认或者取消对数据库中的数据进行的变更。除此之外,还可以对 RDBMS 的用户是否有权限操作数据库中的对象(数据库表等)进行设定。 DCL 包含以下几种指令。
-
- COMMIT: 确认对数据库中的数据进行的变更
- ROLLBACK: 取消对数据库中的数据进行的变更
- GRANT: 赋予用户操作权限
- REVOKE: 取消用户的操作权限
SQL的基本书写规则:
-
- SQL语句要以分号(;)结尾;
- SQL语句不区分关键字大小写,插入表中的数据区分大小写;
- 常数的书写方式是固定的,字符串和日期常数需要使用单引号(')括起来,数字常数无需加注单引号(直接书写数字即可);
- 单词间需要用半角空格或者换行来分隔,不能使用全角空格作为单词的分隔符;
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 中钩子方法
- 支持
Preload、Joins的预加载 - 事务,嵌套事务,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框架。