db.go 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  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. if config.SerCfg.GetDebugMode() {
  42. // 将SQL写到日志文件
  43. logger := log.NewSimpleLogger(logger.GetLogWriter())
  44. Engine.SetLogger(logger)
  45. // 将SQL打印到Console
  46. Engine.ShowSQL(true)
  47. Engine.SetTableMapper(core.SameMapper{})
  48. } else {
  49. Engine.ShowSQL(false)
  50. }
  51. return nil
  52. }
  53. // GetEngine GetEngine
  54. func GetEngine() *xorm.Engine {
  55. return Engine
  56. }
  57. // Close Close
  58. func Close() {
  59. Engine.Close()
  60. }