package mysql import ( "fmt" _ "github.com/go-sql-driver/mysql" "github.com/go-xorm/xorm" "go_sku_server/pkg/config" "go_sku_server/pkg/e" ) var DatabaseConMap map[string]*xorm.Engine func Setup() error { DatabaseConMap = make(map[string]*xorm.Engine, 0) DatabaseList := config.BuildDatabaseList() var err error //循环生成数据库链接 for conName, db := range DatabaseList { userName := db.UserName password := db.Password host := db.Host database := db.Database dataSourceName := fmt.Sprintf("%s:%s@tcp(%s)/%s?charset=utf8", userName, password, host, database) DatabaseConMap[conName], err = xorm.NewEngine("mysql", dataSourceName) if err != nil { return e.NewFatalError(err.Error()) //这里返回致命异常 } //日志打印SQL ShowSql,_ := config.Get("xorm.ShowSQL").Bool() DatabaseConMap[conName].ShowSQL(ShowSql) //设置连接池的空闲数大小 DatabaseConMap[conName].SetMaxIdleConns(db.MaxIdleCons) //设置最大打开连接数 DatabaseConMap[conName].SetMaxOpenConns(db.MaxOpenCons) } return nil } func Conn(conName string) *xorm.Engine { return DatabaseConMap[conName] }