代码拉取完成,页面将自动刷新
package datasource
import (
"errors"
"gitee.com/kristas/booting-go/framework/core/statement/types"
)
type DataSourceImpl struct {
types.Component
Drivers []DataSourceDriver `wire:""`
db interface{}
name string
}
func (d *DataSourceImpl) Bean() string {
return d.name
}
func NewDataSource(name ...string) DataSource {
d := &DataSourceImpl{}
if len(name) > 0 {
d.name = name[0]
} else {
d.name = PropertiesPath
}
return d
}
func (d *DataSourceImpl) Build(properties *DataSourceProperties) (DataSource, error) {
found := false
for _, driver := range d.Drivers {
if driver.Type() == properties.Type && driver.Driver() == properties.Driver {
found = true
conn, err := driver.Open(properties)
if err != nil {
return nil, err
}
d.db = conn
}
}
if !found {
return nil, errors.New(d.Bean() + " not found matched driver!")
}
return d, nil
}
func (d *DataSourceImpl) DB() interface{} {
return d.db
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。