db.go 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  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. //var driverName = "oci8"
  11. //var dataSourceName = "mtp2_test18/muchinfo@192.168.31.117:1521/orcl"
  12. // Engine DB Engine
  13. var Engine *xorm.Engine
  14. // InitDbEngine 创建数据库驱动
  15. func InitDbEngine() error {
  16. driverName := config.SerCfg.GetDbDriver()
  17. dataSourceName := config.SerCfg.GetDbSource()
  18. var err error
  19. Engine, err = xorm.NewOracle(driverName, dataSourceName)
  20. if err != nil {
  21. fmt.Println("create db engine failed:", err)
  22. return err
  23. }
  24. // 解决oracle插入时间格式不正确的问题
  25. // https://github.com/go-xorm/xorm/issues/799
  26. // Engine, err = xorm.NewOracle(driverName, dataSourceName)
  27. // if err != nil {
  28. // fmt.Println("create db engine failed:", err)
  29. // return err
  30. // }
  31. // var p godror.ConnectionParams
  32. // p.Username, p.Password = "mtp2_test202", godror.NewPassword("muchinfo")
  33. // p.ConnectString = dataSourceName
  34. // p.SetSessionParamOnInit("NLS_DATE_FORMAT", "yyyy-mm-dd hh24:mi:ss")
  35. // // ctr := godror.NewConnector(p)
  36. // // Engine.DB().DB = sql.OpenDB(ctr)
  37. // db := sql.OpenDB(godror.NewConnector(p))
  38. // Engine.DB().DB = db
  39. Engine.SetMaxIdleConns(10)
  40. Engine.SetMaxOpenConns(100)
  41. // 将SQL写到日志文件
  42. logger := log.NewSimpleLogger(logger.GetLogWriter())
  43. Engine.SetLogger(logger)
  44. // 将SQL打印到Console
  45. Engine.ShowSQL(true)
  46. Engine.SetTableMapper(core.SameMapper{})
  47. return nil
  48. }
  49. // GetEngine GetEngine
  50. func GetEngine() *xorm.Engine {
  51. return Engine
  52. }
  53. // Close Close
  54. func Close() {
  55. Engine.Close()
  56. }