DATABASESQL与GROM设计与实践| 青训营笔记

64 阅读2分钟

数据库编程是任何编程语言都有提供的基础功能模块,无论是编程语言内置的支持,还是通过外部库来实现;当然,不同编程语言提供的数据库编程API是不相同的,而且需要支持的数据库也是多种多样,如常用的MySQL,SQLServer,Postgres等数据库。

database/sql和database/sql/driver

标准库database/sql是Go语言的数据库操作抽象层,具体的数据库操作逻辑实现则由不同的第三方包来做,而标准库database/sql/driver提供了这些第三方包实现的标准规范。

Go语言的数据库编程,一般只需要导入标准库database/sql包,这个包提供了操作数据库所有必要的结构体、函数与方法。Go语言这样做的好处就是,当从一个数据库迁移到另一个数据库时(如SQL Server迁移到MySQL),则只需要换一个驱动包便可以了。

这东西就是说给你一个操作数据库的渠道,当你换数据库时只需要换一个驱动包就行了

导入实现了database/sql/driver相关接口驱动包

1.安装第三方驱动包

 

$ go get -u github.com/go-sql-driver/mysql

 

2.导入驱动包

 

import database/sql

import _ "github.com/go-sql-driver/mysql"

 

3.初始化sql.DBdatabase/sql包中有两个函数用于初始化并返回一个*sql.DB结构体对象:

 

//driverName表示驱动名,如mysql,dataSourceName为上文介绍的DSN

func Open(driverName, dataSourceName string) (*DB, error)

func OpenDB(c driver.Connector) *DB

 

前面是Go语言原生对数据库编程的支持,不过,更方便的是,我们可以直接使用一些开源的ORM(Object Relational Mapping)框架,ORM框架可以封装了底层的SQL语句,并直接映射为Struct,Map等数据类型,省去我们直接写SQL语句的工作,非常简单方便。

 

GORM

GORM是一个非常完善的ORM框架,除了基本增加改查的支持,也支持关联包含一个,包含多个,属于,多对多的数据表,另外也可以在创建/保存/更新/删除/查找之前或之后写钩子回调,同时也支持事务。

GORM目前支持数据库驱动MySQL、SQLite3、SQL Server、Postgres。

如何安装

1.安装GORM非常简单,使用go get -u就可以在GOPATH目录下安装最新GROM框架。

  1. 导入

  2. DSN

DSN全称为Data Source Name,表示数据库来源,用于定义如何连接数据库,不同数据库的DSN格式是不同的,这取决于数据库驱动的实现