package database import ( "bytes" "ferry/global/orm" "ferry/tools/config" "strconv" _ "github.com/go-sql-driver/mysql" //加载mysql "github.com/jinzhu/gorm" log "github.com/sirupsen/logrus" ) var ( DbType string Host string Port int Name string Username string Password string ) func (e *Mysql) Setup() { var err error var db Database db = new(Mysql) orm.MysqlConn = db.GetConnect() orm.Eloquent, err = db.Open(DbType, orm.MysqlConn) if err != nil { log.Fatalf("%s connect error %v", DbType, err) } else { log.Printf("%s connect success!", DbType) } if orm.Eloquent.Error != nil { log.Fatalf("database error %v", orm.Eloquent.Error) } orm.Eloquent.LogMode(true) } type Mysql struct { } func (e *Mysql) Open(dbType string, conn string) (db *gorm.DB, err error) { return gorm.Open(dbType, conn) } func (e *Mysql) GetConnect() string { DbType = config.DatabaseConfig.Dbtype Host = config.DatabaseConfig.Host Port = config.DatabaseConfig.Port Name = config.DatabaseConfig.Name Username = config.DatabaseConfig.Username Password = config.DatabaseConfig.Password var conn bytes.Buffer conn.WriteString(Username) conn.WriteString(":") conn.WriteString(Password) conn.WriteString("@tcp(") conn.WriteString(Host) conn.WriteString(":") conn.WriteString(strconv.Itoa(Port)) conn.WriteString(")") conn.WriteString("/") conn.WriteString(Name) conn.WriteString("?charset=utf8&parseTime=True&loc=Local&timeout=1000ms") return conn.String() }