数据库基本操作原生方式操作数据库GORM框架介绍01.02.目录GORM常用操作03.结构体定义表字段GORM创建数据表04.05.索引和复合主键06.01原生方式操作数据库•下载依赖关系•连接数据库•创建数据表Go语言程序操作数据库,是通过database/sql包以及第三方实现database/sql/driver接口的数据库驱动包共同完成的。database/sql包是Golang的标准库之一,它提供了一系列接口方法,用于访问关系型数据库。database/sql包不会提供数据库特有的方法,在使用database/sql包时必须注入至少一个数据库驱动特有的方法交给注入的数据库驱动去实现。在使用Go语言开发信息系统的过程中,我们通常会使用到以下数据库:MySQL、MariaDB、PostgreSQL、SQlite和SQLServer。1原生方式操作数据库Go语言程序操作数据库1原生方式操作数据库MariaDB的下载地址为:https://mariadb.org/download/1原生方式操作数据库MySQL的下载地址为:https://dev.mysql.com/downloads/installer/1原生方式操作数据库数据表创建数据表连接连接数据库依赖下载依赖关系1原生方式操作数据库goget-ugithub.com/go-sql-driver/mysql下载依赖关系注:github.com/go-sql-driver/mysql为用于下载Go的数据库/sql包的MySQL驱动程序的地址命令goget会自动从一些主流公用代码仓库(比如GitHub)下载目标代码包,并把它们安装到环境变量GOPATH包含的第1工作区的相应目录中-u参数会让命令利用网络来更新已有代码包及其依赖包。默认情况下,该命令只会从网络上下载本地不存在的代码包,而不会更新已有的代码包1原生方式操作数据库funcOpen(driverName,dataSourceNamestring)(*DB,error)连接数据库•在Go语言中database/sql包中提供了Open()函数来连接数据库。•driverName:表示指定的数据库•dataSourceName:表示指定的数据源,通过Open()函数打开指定的数据库和数据源,一般至少要包括数据库文件名和(可能的)连接信息•*DB:表示返回的数据库对象,可以被多个go进程同时使用,并且会维护自身的闲置连接池。这样一来,Open函数只需要调用一次,很少需要关闭DB1原生方式操作数据库func(db*DB)Exec(querystring,args...interface{})(Result,error)创建数据表•Go语言中使用Exec()函数来创建数据表•querystring:表示要插入表中的字符串•args:表示query中的占位参数•Result:表示结果集,Exec执行一次命令(包括查询、删除、更新、插入等),返回的Result是对已执行的SQL命令的总结,数据库查询的时候,都会有结果集packagemainimport("database/sql""fmt"_"github.com/go-sql-driver/mysql")funcmain(){pool,err:=sql.Open("mysql","root:root@tcp(127.0.0.1:3306)/test")iferr!=nil{fmt.Println(err.Error())}else{fmt.Println("数据库连接成功")}sql:="createtableaccount("+"idintprimarykey,"+"usernamevarchar(50),"+"balancedouble)"_,err=pool.Exec(sql)iferr!=nil{fmt.Println(err.Error())}else{fmt.Println("数据库创建成功")}deferpool.Close()}运行结果为:数据库连接成功数据库创建成功1原生方式操作数据库02GORM框架介绍•ORM的具体定义•ORM的整体架构核心原则•GORM的特性•ORM(ObjectRelationalMapping),即对象关系映射•用于实现面向对象编程语言里不同类型系统的数据之间的转换•作用是映射数据库与对象之间的关系,方便我们在操作数据库时不用去写复杂的SQL语句,把对数据库的操作上升到对于对象的操作。2GORM框架介绍Go语言本身自带的database/sql包:需要编写大量复杂的SQL语句生产环境中:使用GORM标准框架来操作数据库GORM=Go+ORM2GORM框架介绍O(Object,对象模型):实体对象,即在程序中根据数据表结构建立的一个个实体(Entity)R(Relation,关系型数据库的数据结构):建立的数据库表M(Mapping,映射):从R(数据库)到O(对象模型)的映射,常用XML文件来表示映射关系ORM的具体定义简单:以最基本的形式建模数据,相较于Go语言本身去直接操作SQL要传达性:数据库结构要使用尽可能被人理解的语言进行文档化精确性:基于数据模型创建正确标准化的结构ORM的整体架构基于以下3个核心原则•全功能ORM•关联(...