ORM(对象关系映射): 把数据库映射成对象。ORM 使用对象,封装了数据库操作,因此可以不碰 SQL 语言。开发者只使用面向对象编程,与数据对象直接交互,不用关心底层数据库实现;
gorm是使用go语言实现数据库访问的ORM库。使用这个库,我们可以利用面向对象的方法,更加方便的对数据库中的数据进行CRUD(数据库的基本操作有四种:create、read、update和delete,简称 CRUD),而无需关心底层数据库的具体实现以及数据库的类型(支持多种类型的数据库,例如MySQL,SQLite,PostgreSQL,MSSQL)。
基本使用:
下载依赖
1 | $go get github.com/jinzhu/gorm |
第一个是核心库。
第二个是mysql数据库的驱动包,如果使用的是其他数据库,则需下载相应数据库的驱动包。
gorm包装了一些常用数据库的驱动,直接下载即可:
1 | //import _ "github.com/jinzhu/gorm/dialects/mysql" |
连接数据库
1 | packae main |
上面代码中 mysql 是数据库驱动,root 是数据库用户名,12345 是密码,demo 则是数据库名称。
新增数据
1 | type User struct { |
User类型中内嵌了gorm.Model字段,gorm.Model会自动为User{}添加如下4个字段:
id:索引
create_at:数据条目生成时间
updated_at:数据条目更新时间
deleted_at:数据条目删除时间
删除数据
1 | user := &User{ID:1} |
更新数据
1 | user := &User{ID:1} |
查询数据
1 | //查询所有条目 |
其它:
判断数据库中是否有结构体对应的表:
1 | db.HasTable(User{}) |
创建表
1 | db.CreateTable(User{}) |
