123456789101112131415161718192021222324252627282930313233343536373839 |
- package database
- import (
- "database/sql"
- "github.com/beego/beego/v2/core/logs"
- )
- type DataBase interface {
- Exec(query string, args ...interface{}) (sql.Result, error)
- }
- type Tx interface {
- Commit() error
- Rollback() error
- Exec(query string, args ...interface{}) (sql.Result, error)
- Query(query string, args ...interface{}) (*sql.Rows, error)
- }
- 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
- }
|