W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
我們可以通過?gdb
?模塊的接口設(shè)計(jì)實(shí)現(xiàn):新增框架默認(rèn)不支持的第三方數(shù)據(jù)庫驅(qū)動(dòng)、對(duì)已有支持的驅(qū)動(dòng)進(jìn)行定制化修改等。
之前我們有提到?Driver
?的驅(qū)動(dòng)接口,在實(shí)現(xiàn)該接口之后,我們可以通過以下方法注冊(cè)自定義驅(qū)動(dòng)到?gdb
?模塊:
// Register registers custom database driver to gdb.
func Register(name string, driver Driver) error
其中的驅(qū)動(dòng)名稱?name
?可以是已有的驅(qū)動(dòng)名稱,例如?mysql
?, ?mssql
?, ?pgsql
?等等,當(dāng)出現(xiàn)同名的驅(qū)動(dòng)注冊(cè)時(shí),新的驅(qū)動(dòng)將會(huì)覆蓋老的驅(qū)動(dòng)。
開發(fā)一個(gè)自定義的驅(qū)動(dòng)并注冊(cè)到?gdb
?模塊中非常簡單,可以參考?gdb
?模塊源碼中已對(duì)接的數(shù)據(jù)庫類型代碼示例:https://github.com/gogf/gf/tree/master/contrib/drivers
需要說明的是,最常見的驅(qū)動(dòng)開發(fā)或者修改方式是直接繼承于現(xiàn)有?*Core
?類型,因?yàn)樵?Driver
?接口中會(huì)傳遞該類型的對(duì)象,例如:
// DriverMysql is the driver for mysql database.
type DriverMysql struct {
*Core
}
// New creates and returns a database object for mysql.
// It implements the interface of gdb.Driver for extra database driver installation.
func (d *DriverMysql) New(core *Core, node *ConfigNode) (DB, error) {
return &DriverMysql{
Core: core,
}, nil
}
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: