gorm | 青训营

87 阅读2分钟

GORM是一个用于Go编程语言的对象关系映射(ORM)库,它可以用于在Go应用程序和关系型数据库之间建立映射关系,从而使数据操作更加方便和高效。ORM是一种编程技术,用于将对象模型和数据库模型之间的映射关系抽象化,让开发者能够使用面向对象的方式进行数据库操作,而不必直接编写SQL语句。实际工程中,预先定义好数据库是比较好的,gorm主要用来作映射。

GORM 的主要用途和优点包括:

  1. 简化数据库操作:GORM 可以让开发者使用Go结构体的方式来描述数据库表结构,然后通过调用GORM提供的方法,实现数据的创建、查询、更新和删除等操作,而无需直接编写复杂的SQL语句。使用结构体与数据表自动映射时,应遵循驼峰命名的方式,不过也可以使用反射机制进行手动映射,如果想自定义表名,得实现结构体的tablename方法返回表名。
  2. 提高开发效率:通过使用GORM,开发者可以更快速地构建数据库相关的功能,从而加快开发进度。GORM自动处理数据库连接、事务管理等底层细节,使开发者能够专注于业务逻辑。数据库连接可以不用显式关闭,等程序运行结束会自动关闭,要实现事务,有多种方法:自动事务,嵌套事务,手动事务。
  3. 跨数据库兼容: GORM 支持多种数据库系统,包括MySQL、PostgreSQL、SQLite等。这意味着可以在不同数据库之间切换而无需更改大部分代码。
  4. 查询构造器: GORM 提供了强大的查询构造器,可以通过链式调用的方式构建复杂的查询语句,包括条件、排序、分页等。常用的方法比如:where,order,find,take,delete。take操作返回一条记录,如果没找到会返回零值,不会报错,这需要在查询后验证记录的有效性。
  5. 关联映射:GORM 支持定义和操作表之间的关联关系,如一对多、多对多等。
  6. 数据验证:GORM 提供了数据验证机制,可以确保插入或更新的数据符合预期的规则。
  7. 钩子函数:GORM 允许开发者定义在不同阶段触发的钩子函数,用于执行一些特定的操作,如在保存数据之前或之后执行特定的逻辑。例如,BeforeCreate可以在创建记录之前,做一些常规校验,比如存在性,唯一性,合法性等。