[ GORM设计原理 | 青训营笔记 ]

301 阅读2分钟

GORM(Go Object Relational Mapping)是Go语言中非常流行的一种ORM框架。它提供了针对SQL数据库的高级抽象和ODM功能,可以将Go结构体映射到数据库表和文档。 GORM的设计原理如下:

  1. 模型与数据表的映射
    GORM 的核心是将 Go 的结构体映射到数据库表。 它通过在结构体的字段上使用标记来定义结构体的属性和约束,从而将模型和表的关系建立起来。 在建立映射关系之前,需要使用 GORM 的 AutoMigrate() 函数创建表格,以及模型层的实现和数据库层的实现。
  2. 面向对象的查询接口
    GORM 提供了一组基于方法链的面向对象查询接口。 这些接口支持链式操作,可以方便地添加过滤器、排序、分页和关联查询等功能。
  3. 事务管理
    GORM 支持事务管理,它使用 Begin() 函数启动事务,将多个操作封装在一个事务中,然后通过 Commit() 函数提交所有操作或通过 Rollback() 函数回滚所有操作。
  4. 钩子函数
    GORM 提供了一组钩子函数,可以在对数据库进行操作之前或之后执行自定义代码。这些钩子函数可以用来实现时间戳、用户密码加密、验证或更新字段等功能。
  5. 数据库迁移
    GORM 提供了一个称为 GORM-Migrate 的命令行工具,它可以自动管理数据库迁移。您可以使用 GORM-Migrate 来自动创建、修改或删除表,以及增加或删除列等。

总之,GORM通过将Go结构体映射到数据库表和面向对象的查询接口等功能,提供了一种简单、方便和高效的方式来访问和操作数据库。