我们可以通过数据库组件的接口设计实现:新增框架默认不支持的第三方数据库驱动、对已有支持的驱动进行定制化修改等。驱动的开发并不是完整地开发一类数据库的协议实现代码,而是使用第三方已有的数据库驱动,通过实现框架数据库组件的接口,将该第三方数据库驱动对接到框架数据库组件上来,保证上层操作的一致。

驱动注册

其中的驱动名称name可以是已有的驱动名称,例如mysql, mssql, pgsql等等,当出现同名的驱动注册时,新的驱动将会覆盖老的驱动。

驱动实现

需要说明的是,最常见的驱动开发或者修改方式是直接继承于现有类型,因为在Driver接口中会传递该类型的对象,例如:

  1. // DriverMysql is the driver for mysql database.
  2. type DriverMysql struct {
  3. }
  4. // New creates and returns a database object for mysql.
  5. return &DriverMysql{
  6. Core: core,
  7. }, nil
  8. }

注意事项