第五次课堂记录 | 青训营笔记

104 阅读1分钟

这是我参与「第三届青训营 -后端场」笔记创作活动的的第5篇笔记.

DATABASE/SQL与GORM的设计与实践

一、理解database/sql

1.1 代码分析

image.png

使用driver+DSN初始数据化连接

执行一条SQL,通过rows取回返回的数据,进行内存释放

数据、错误处理

1.2 设计原理

image.png

连接池的操作使用池化技术,是一个编程技巧

可以方便从池子取值,同时提供垃圾回收等功能,能够提高服务的性能

image.png

Driver连接接口

image.png

image.png

DB连接的几种类型

  • 直接连接Conn
  • 预编译Stmt
  • 事务Tx

数据返回的几种方式

  • Exec/ExecContext -> Result
  • Query/QueryContext -> Rows(Columns)
  • QueryRow/QueryRowContext -> Row(Rows简化)

image.png

二、 Gorm基础使用

“设计简洁、功能强大、自由扩展的全功能ORM”

基本用法CRUD

image.png

模型定义

这个包可以处理稍微处理一点复杂的逻辑。 image.png

  • 表明为struct name的 snake_cases复数格式
  • 字段名为field name 的 snake_case单数格式
  • ID字段为主键,如果为数字,则为自增主键
  • CreateAt字段,创建时保留当前的时间
  • UpdatedAt字段,创建更新时,保存当前时间
  • gorm.DeleteAt字段,默认开启soft delete模式

关联介绍

image.png

CURD

image.png

Preload/Join预加载

image.png