初识DatabaseSQL与GORM实践

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第1天,点击查看活动详情

课前知识储备:

数据库、SQL

什么是数据库和SQL? - 知乎 (zhihu.com)

使用Database/sql建立连接、使用

DSN: (数据源名称)Data source name

数据源名称具有通用格式,例如——Manual :: The Data Source Name (php.net) 分类介绍,无类型前缀,(用方括号标记的可选部分):格式——

[username[:password]@[protocol[(address)]]/dbname[?param1=value1&...&paramN=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

image-20220627204448233

对上述代码的解释:

  • 3-9行——import driver 实现,引入sql实现,这里引入mysql包的实现。使用driver+DSN初始化DB连接。
  • 10-14行——执行一条SQL,通过rows取回返回的数据处理完毕,需要释放链接(14)。
  • 15-26行——数据、错误处理

2、设计原理:

image-20220628154947125

  • 连接池

    image-20220628155331045

  • 该操作过程的伪实现

    image-20220628155416673

总结:

image-20220628155459715

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.

用法:

image-20220628205439444

CRUD

简介:CRUD是指在做计算处理时的增加(Create)、读取查询(Retrieve)、更新(Update)和删除(Delete)几个单词的首字母简写。主要被用在描述软件系统中DataBase或者持久层的基本操作功能。

image-20220628210208401

image-20220628210245884

模型定义

image-20220628214033577

惯例约定

image-20220628215036377

注:配置皆可自定义。

posted @ 2022-09-29 16:15  Luciferpluto  阅读(1)  评论(0)    收藏  举报  来源