package database import "github.com/beego/beego/v2/core/logs" type DataBase interface { } var dbs = make(map[string]DBInstance) type DBInstance func() DataBase func GetDBInstance(name string) (db DataBase) { instanceFunc, ok := dbs[name] if !ok { logs.Error("db: 未知数据源类型 %q ", name) return nil } db = instanceFunc() return } func Register(name string, adapter DBInstance) { if adapter == nil { panic("不支持的数据源格式") } if _, ok := dbs[name]; ok { panic("数据源已注册" + name) } dbs[name] = adapter }