models.go 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. package models
  2. import (
  3. "../pkg/setting"
  4. "fmt"
  5. _ "github.com/go-sql-driver/mysql"
  6. "github.com/xormplus/xorm"
  7. "log"
  8. )
  9. var Engine *xorm.Engine
  10. func Setup() {
  11. var err error
  12. // restful 接口的 数据库初始化
  13. if err := SQLInit("mysql", fmt.Sprintf("%s:%s@tcp(%s)/%s?charset=utf8&parseTime=True&loc=Local",
  14. setting.DatabaseSetting.User,
  15. setting.DatabaseSetting.Password,
  16. setting.DatabaseSetting.Host,
  17. setting.DatabaseSetting.Name), 1000, 10,setting.DatabaseSetting.ShowXormlog); err != nil {
  18. log.Fatal(err.Error())
  19. fmt.Println("dbs 数据库初始化失败 ")
  20. }
  21. if err != nil {
  22. fmt.Println("dbs 数据库初始化失败 ")
  23. log.Fatalf("models.Setup err: %v", err)
  24. }
  25. }
  26. func SQLInit(driverName, dataSourceName string, maxOpenConns, maxIdleConns int, showlog bool) error {
  27. if Engine == nil {
  28. var err error
  29. if Engine, err = xorm.NewEngine(driverName, dataSourceName); err != nil {
  30. return err
  31. }
  32. if showlog {
  33. Engine.ShowSQL(true)
  34. }
  35. Engine.SetMaxIdleConns(maxIdleConns)
  36. Engine.SetMaxOpenConns(maxOpenConns)
  37. }
  38. return nil
  39. }