1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- package database
- import (
- "bytes"
- "duoduo/conf"
- "fmt"
- _ "github.com/go-sql-driver/mysql" //加载mysql
- "github.com/jinzhu/gorm"
- "log"
- "strconv"
- )
- var Eloquent *gorm.DB
- var (
- Host string
- Port int
- Name string
- Username string
- Password string
- )
- func Setup() {
- //加载配置
- confIni, errConf := conf.ConnIni()
- if errConf != nil {
- fmt.Println(errConf)
- }
- Host = confIni.MustValue("mysql", "mysql_host")
- Port = confIni.MustInt("mysql", "mysql_port")
- Name = confIni.MustValue("mysql", "mysql_name")
- Username = confIni.MustValue("mysql", "mysql_username")
- Password = confIni.MustValue("mysql", "mysql_password")
- var err error
- conn := GetMysqlConnect()
- log.Println(conn)
- var db Database
- db = new(Mysql)
- Eloquent, err = db.Open("mysql", conn)
- if err != nil {
- log.Fatalf("mysql connect error %v", err)
- } else {
- log.Printf("mysql connect success!")
- }
- if Eloquent.Error != nil {
- log.Fatalf("database error %v", Eloquent.Error)
- }
- Eloquent.LogMode(true)
- //McNew()
- }
- func GetMysqlConnect() string {
- 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=utf8mb4&parseTime=True&loc=Local&timeout=1000ms")
- return conn.String()
- }
- type Database interface {
- Open(dbType string, conn string) (db *gorm.DB, err error)
- }
- type Mysql struct {
- }
- func (*Mysql) Open(dbType string, conn string) (db *gorm.DB, err error) {
- eloquent, err := gorm.Open(dbType, conn)
- return eloquent, err
- }
|