驱动引入

数据库驱动的安装和引入请参考:https://github.com/gogf/gf/tree/master/contrib/drivers

基本介绍

GoFrame框架的ORM功能由gdb模块实现,用于常用关系型数据库的ORM操作。

gdb数据库引擎底层采用了链接池设计,当链接不再使用时会自动关闭,因此链接对象不用的时候不需要显式使用Close方法关闭数据库连接。

接口文档:

https://pkg.go.dev/github.com/gogf/gf/v2/database/gdb

组件特性

GoFrame ORM组件具有以下显著特点:

  1. 全自动化支持嵌套事务。
  2. 面向接口化设计、易使用易扩展。
  3. 内置支持主流数据库类型驱动,并易于扩展。
  4. 强大的配置管理,使用框架统一的配置组件。
  5. 支持单例模式获取配置同一分组数据库对象。
  6. 支持原生SQL方法操作、ORM链式操作两种方式。
  7. 支持可观测性:链路跟踪、日志记录、指标上报。
  8. 通过Scan方法自动识别Map/Struct接收查询结果,自动化查询结果初始化、结构体类型转换。
  9. 通过返回结果nil识别为空,无需sql.ErrNoRows识别查询数据为空的情况。
  10. 全自动化的结构体属性-字段映射,无需显示定义结构体标签维护属性-字段映射关系。
  11. 自动化的给定Map/Struct/Slice参数类型中的字段识别、过滤,大大提高查询条件输入、结果接收。
  12. 完美支持GoFrame框架层面的DAO设计,全自动化Model/DAO代码生成,极大提高开发效率。
  13. 支持调试模式、日志输出、DryRun、自定义Handler、自动类型类型转换、自定义接口转换等等高级特性。
  14. 支持查询缓存、软删除、自动化时间更新、模型关联、数据库集群配置(软件主从模式)等等实用特性。

知识图谱

GoFrame ORM Features

组件关联

GoFrame ORM Dependencies

g.DBgdb.Newgdb.Instance

  1. g.DB对象管理方式获取的是单例对象,整合了配置文件的管理功能,支持配置文件热更新。
  2. gdb.New是根据给定的数据库节点配置创建一个新的数据库对象(非单例),无法使用配置文件。
  3. gdb.Instance是包原生单例管理方法,需要结合配置方法一起使用,通过分组名称(非必需)获取对应配置的数据库单例对象。

有这么多对象获取方式原因在于GoFrame是一个模块化设计的框架,每个模块皆可单独使用。

获取数据库对象单例

  1. // 获取默认配置的数据库对象(配置名称为"default")
  2. db := g.DB()
  3. db := g.DB("user")
  4. // 使用原生单例管理方法获取数据库对象单例
  5. db, err := gdb.Instance()
  6. db, err := gdb.Instance("user")

相关文档