data_base.go 557 B

1234567891011121314151617181920212223242526272829
  1. package database
  2. import "github.com/beego/beego/v2/core/logs"
  3. type DataBase interface {
  4. }
  5. var dbs = make(map[string]DBInstance)
  6. type DBInstance func() DataBase
  7. func GetDBInstance(name string) (db DataBase) {
  8. instanceFunc, ok := dbs[name]
  9. if !ok {
  10. logs.Error("db: 未知数据源类型 %q ", name)
  11. return nil
  12. }
  13. db = instanceFunc()
  14. return
  15. }
  16. func Register(name string, adapter DBInstance) {
  17. if adapter == nil {
  18. panic("不支持的数据源格式")
  19. }
  20. if _, ok := dbs[name]; ok {
  21. panic("数据源已注册" + name)
  22. }
  23. dbs[name] = adapter
  24. }