GORM的简单入门教程(一)|青训营

66 阅读2分钟

1.Gorm概述

Gorm是一个神奇的,对开发人员友好的Golang ORM库(类比Java中的Mybatis)。 什么是ORM库?ORM(Object-Relational Mapping)框架是一种将对象模型表示映射到关系型数据库的技术。ORM框架可以帮助开发人员将数据从数据库中提取出来,封装成对象,并且将对象的属性与关系数据库中的表和列进行映射。这样开发人员就可以使用面向对象的方式操作数据库,而无需关心底层数据库的细节。ORM框架通常包含对象模型和关系模型之间的映射代码,这个映射可以使用注解、XML配置文件、DSL等方式进行定义。ORM框架还提供了一些其他的功能,例如缓存、事务管理和查询优化等,这些功能都可以提高应用程序的性能和开发效率。常见的Go语言ORM框架有GORM、XORM、beego ORM等。

2.Gorm的特性

  • 全特性ORM
  • 模型关联(一对一、一对多、一对多(反向)、多对多、多态关联)
  • 钩子(Before/After、Create/Save/Update/Delete/Find)
  • 预加载
  • 事务
  • 复合主键
  • SQL构造器
  • 自动迁移
  • 日志
  • 基于Gorm回调编写可拓展插件
  • 全特性测试覆盖
  • 开发者友好

3.安装Gorm

go intsall -u gitub.com/jinzhu/gorm

4.模型定义

模型一般都是普通的Golang结构体,Go的基本数据类型,或者是指针、sql.Scannerdriver.Valuer,同时也支持接口。如下所示:

typer User struct {
  gorm.Model
  Name string
  Age sql.NullInt64
  Birthday *time.Time
  Email string `gorm:"type:varchar(100):unqiue_index"`
  Role string `gorm:"size:255"` // 设置字段大小为255字节
  MemberNumer *string `gorm:unique;not null` // 设置MemberNumber字段唯一且不为空
  Num int `gorm:"AUTO_INCREMENT"` // 设置Num字段自增
  Address string `gorm:"index:addr"` // 给Address创建一个名字是addr的索引
  IgnoreMe int `gorm:"-"` // 忽略这个字段
}