gdb模块使用了非常灵活且扩展性强的接口设计,接口设计允许开发者可以非常方便地自定义实现和替换接口定义中的任何方法。

DB接口

接口文档:https://godoc.org/github.com/gogf/gf/database/gdb#DB

DB接口是数据库操作的核心接口,也是我们通过ORM操作数据库时最常用的接口,这里主要对接口的几个重要方法做说明:

  1. Open方法用于创建特定的数据库连接对象,返回的是标准库的*sql.DB通用数据库对象。
  2. Do*系列方法的第一个参数linkLink接口对象,该对象在master-slave模式下可能是一个主节点对象,也可能是从节点对象,因此如果在继承的驱动对象实现中使用该link参数时,注意当前的运行模式。slave节点在大部分的数据库主从模式中往往是不可写的。
  3. HandleSqlBeforeCommit方法将会在每一条SQL提交给数据库服务端执行时被调用做一些提交前的回调处理。
  4. 其他接口方法详见接口文档或者源码文件。

Driver接口

接口文档:https://godoc.org/github.com/gogf/gf/database/gdb#Driver

开发者自定义的驱动需要实现以下接口:

  1. // Driver is the interface for integrating sql drivers into package gdb.
  2. type Driver interface {
  3. // New creates and returns a database object for specified database server.
  4. New(core *Core, node *ConfigNode) (DB, error)
  5. }

其中的New方法用于根据Core数据库基础对象以及ConfigNode配置对象创建驱动对应的数据库操作对象,需要注意的是,返回的数据库对象需要实现DB接口。而数据库基础对象Core已经实现了DB接口,因此开发者只需要”继承”Core对象,然后根据需要覆盖对应的接口实现方法即可。