mysqldb.go 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. package db
  2. import (
  3. "fmt"
  4. "mtp2_if/config"
  5. "mtp2_if/logger"
  6. "github.com/xormplus/core"
  7. "github.com/xormplus/xorm"
  8. "github.com/xormplus/xorm/log"
  9. )
  10. // MySQLEngine MySQL Engine
  11. var MySQLEngine *xorm.Engine
  12. // InitMySQLDbEngine 创建数据库驱动
  13. func InitMySQLDbEngine() error {
  14. host := config.SerCfg.GetMySQLHost()
  15. port := config.SerCfg.GetMySQLPort()
  16. dbname := config.SerCfg.GetMySQLDBName()
  17. username := config.SerCfg.GetMySQLUsername()
  18. password := config.SerCfg.GetMySQLPassword()
  19. dataSourceName := fmt.Sprintf("%s:%s@(%s:%d)/%s?charset=utf8", username, password, host, port, dbname)
  20. var err error
  21. MySQLEngine, err = xorm.NewEngine("mysql", dataSourceName)
  22. if err != nil {
  23. fmt.Println("create mysql engine failed:", err)
  24. return err
  25. }
  26. Engine.SetMaxIdleConns(10)
  27. Engine.SetMaxOpenConns(100)
  28. // 将SQL写到日志文件
  29. logger := log.NewSimpleLogger(logger.GetLogWriter())
  30. Engine.SetLogger(logger)
  31. // 将SQL打印到Console
  32. Engine.ShowSQL(true)
  33. Engine.SetTableMapper(core.SameMapper{})
  34. return nil
  35. }
  36. // GetMySQLEngine GetMySQLEngine
  37. func GetMySQLEngine() *xorm.Engine {
  38. return MySQLEngine
  39. }
  40. // CloseMySQL CloseMySQL
  41. func CloseMySQL() {
  42. MySQLEngine.Close()
  43. }