初识DatabaseSQL与GORM实践
持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第1天,点击查看活动详情
课前知识储备:
数据库、SQL
使用Database/sql建立连接、使用
DSN: (数据源名称)Data source name
数据源名称具有通用格式,例如——Manual :: The Data Source Name (php.net) 分类介绍,无类型前缀,(用方括号标记的可选部分):格式——
[username[:password]@[protocol[(address)]]/dbname[?param1=value1&...¶mN=valueN]
完整的DSN:
username:password@protocol(address)/dbname?param=value
除数据库名称,其余所有值都是可选的,最小DSN为
/dbname
留空:dbname即与空DSN字符有相同效果
维基百科的解释——Data source name - Wikipedia
GORM的基础认知
GORM Guides | GORM - The fantastic ORM library for Golang, aims to be developer friendly.
课上笔记:
理解database/sql
1、基本用法——Quick start
对上述代码的解释:
- 3-9行——import driver 实现,引入sql实现,这里引入mysql包的实现。使用driver+DSN初始化DB连接。
- 10-14行——执行一条SQL,通过rows取回返回的数据处理完毕,需要释放链接(14)。
- 15-26行——数据、错误处理
2、设计原理:
-
连接池
-
该操作过程的伪实现
总结:
GORM使用简介
基本用法
“设计简洁、 功能强大、自由扩展的全功能ORM”
基础认识
ORM
Object-Relationl Mapping,即对象关系映射,这里的Relationl指的是关系型数据库
在关系型数据库和对象之间作一个映射,使得在具体的操作数据库的时候,不需要再去和复杂的SQL语句打交道,只要像操作对象一样操作它即可。
GORM
Golang出色的ORM库旨在使开发人员。
-
设计原则:API精简、测试优先、最小惊讶、灵活扩展、无依赖——可信赖。
-
功能概述:
- 关联:一对一、一对多、单表自关联、多态;Preload、Joins预加载、级联删除﹔关联模式;自定义关联表
- 事务︰事务代码块、嵌套事务、Save Point
- 多数据库、读写分离、命名参数、Map、子查询、分组条件、代码共享、SQL表达式(查询、创建、更新)、自动选字段、查询优化器
- 字段权限、软删除、批量数据处理、Prepared Stmt、自定义类型、命名策略、虚拟字段、自动track时间、SQL Builder、Logger
- 代码生成、复合主键、Constraint、Prometheus、Auto Migration、跨数据库兼容..
- 多模式灵活自由扩展
- Developer Friendly
附官方文档:
GORM Guides | GORM - The fantastic ORM library for Golang, aims to be developer friendly.
用法:
CRUD
简介:CRUD是指在做计算处理时的增加(Create)、读取查询(Retrieve)、更新(Update)和删除(Delete)几个单词的首字母简写。主要被用在描述软件系统中DataBase或者持久层的基本操作功能。
模型定义
惯例约定
注:配置皆可自定义。

浙公网安备 33010602011771号