GORM 是一个基于 Go 语言的 ORM库。ORM 是一种编程技术,用于将对象和数据库之间的数据进行映射,从而实现数据库的访问和操作。GORM 旨在简化 Go 语言中与数据库交互的过程,提供了强大且易用的 API,使得开发者能够更方便地进行数据库操作,而无需直接编写 SQL 语句。
使用gorm时要导入gorm和mysql驱动器: "github.com/jinzhu/gorm" 以及 _"github.com/jinzhu/gorm/dialects/mysql" (匿名导入包,只执行其初始化代码)
user,password代表数据库的用户名和密码,dbname代表要链接的数据库,后三个分别代表编码格式,格式化时间以及时区。
不要忘记defer操作,针对go语言的链接都要提前写好defer close操作
建立表关联,在数据库中不存在会建表(gorm.Model自动生成ID主键,以及创建更新删除时间),这些值都会自动设置(也可以自己在NaciCat建表)(注意mysql里不区分大小写,都是小写)
gorm.Model默认使用软删除,删除后数据仍然存在数据库中,但delete_at被赋值。
也可以手动指定建表名称,只需对结构体实现方法
总结
-
定义模型结构体: 首先,需要定义一个 Go 结构体,该结构体表示数据库中的数据表。每个字段都对应着表中的一个列,而结构体的名称通常与表名相对应。
-
设置字段映射: 在结构体的字段上使用标签(tag)来定义字段与表中列的映射关系,包括列名、数据类型、约束等信息。
-
连接数据库: 使用 GORM 的
Open方法连接到数据库,配置数据库连接字符串,包括用户名、密码、主机、端口等信息。 -
创建表: 使用 GORM 提供的
AutoMigrate方法,将定义好的结构体传递进去,GORM 会自动创建对应的数据表。如果表已经存在,它会检查表结构是否需要更新,然后进行相应的修改。 -
数据迁移: 在数据库模型发生变化时,使用 GORM 提供的数据迁移工具,可以保证已有数据的安全迁移,避免数据丢失或结构不一致的问题。
-
自定义表名: 如果需要使用不同于结构体名称的表名,可以在结构体上使用 GORM 的
TableName方法指定自定义表名。
总的来说,GORM 通过结构体的定义和标签配置,以及提供的数据迁移功能,使得建表过程更加便捷和灵活。它简化了数据库操作,同时提供了强大的查询和数据模型管理功能,适用于各种规模的应用程序开发。