一、本笔记主要内容:
- 掌握Hertz/Kitex/Gorm基本用法
- 通过学习,正常完成Hertz/Kitex/Gorm后端开发
二、ORM的特性
- 关联(has one,has many ,belongs to,many to many,多态)
- create,save update,delete,find 中多种钩子方法
- 支持 preload、joins的预加载
- 事物,嵌套事务,save point,rollback to saved point
- 复合主键,索引,约束
- auto migration等
Kitex是字节跳动内部的golang微服务prc框架
hertz是字节跳动内部的http框架
DATABASE/SQL设计原理:
- 可以使用import driver实现,driver+dsn初始化db链接
- db链接的类型:
- 直接连接 conn
- 预编译 stmt
- 事务 tx
处理返回的数据的方式:
- exce/excecontext-->result
- query/querycontext-->rows
- queryrow/queryrowcontext-->row(简化rows)
GORM的官方支持数据库是市面上常用的几个
- MySQL
- postgreSQL
- SQlite
- SQL Server
连接过程中会涉及到连接池的使用
连接池是创建和管理连接的缓冲池的技术,这些 连接准备好被任何需要他们的线程所使用
连接池的优点:
- 减少连接创建时间
- 简化编程方式
- 受控的资源使用
GRUD的创建
- Create|GORM - The fantastic ORM library for Golang,aims to be developer friendly
- GRUD的关联
- Belongs To |GORM - The fantastic ORM library for Golang,aims to be developer friendly
Hertz相关笔记
Hertz路由:
- hertz和gin框架类似,提供了常见的 get,put,post,delete,any等等方法用于注册路由 ,获取请求
- 提供了参数路由和通配路由,静态路由-->命名路由-->通配路由
- hertz参数绑定
- hertz提供了bind,validate,bindandvalidate函数等用于参数绑定和校验
- hertz中间件,hertz client等功能都与gin框架类似
项目实践
直播课程所展示的项目是一个使用hertz,kitex,gorm搭建出来的具备一定业务逻辑的后端api项目
demoapi:
- 用户登录
- 用户注册
- 用户创建笔记
- 用户更新笔记
- 用户删除笔记
- 用户查询笔记
demouser:
- 创建用户
- 查询用户
- 校验用户
demonote
- 创建笔记
- 更新笔记
- 删除笔记
- 查询笔记
以上是本次课程实验项目的抽象分析,使其具有增删改查的基本功能
本次课程大多使用字节跳动内部的框架,有gin框架基础的同学会更好入手,同时这套框架搭建这个api确实不简单,希望自己能能够尽快突破go的基础阶段,做一次真项目。