xorm_oracle.go 977 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. package core
  2. import (
  3. "fmt"
  4. "mtp20_assisted/global"
  5. _ "github.com/mattn/go-oci8"
  6. "go.uber.org/zap"
  7. "xorm.io/xorm"
  8. )
  9. // 连接Oracle数据库
  10. func XormOracle() *xorm.Engine {
  11. driver := global.M2A_CONFIG.Oracle.Driver
  12. dbsource := fmt.Sprintf("%s/%s@%s:%s/%s",
  13. global.M2A_CONFIG.Oracle.User,
  14. global.M2A_CONFIG.Oracle.Pwd,
  15. global.M2A_CONFIG.Oracle.Address,
  16. global.M2A_CONFIG.Oracle.Port,
  17. global.M2A_CONFIG.Oracle.Name)
  18. if engine, err := xorm.NewEngine(driver, dbsource); err != nil {
  19. global.M2A_LOG.Error("oracle connect failed, err:", zap.Error(err))
  20. return nil
  21. } else {
  22. engine.SetMaxIdleConns(global.M2A_CONFIG.Oracle.MaxIdleConns)
  23. engine.SetMaxOpenConns(global.M2A_CONFIG.Oracle.MaxOpenConns)
  24. // 控制台打印出生成的SQL语句
  25. engine.ShowSQL(true)
  26. // 不仅打印到控制台,而是保存为文件
  27. // engine.SetLogger(log.NewSimpleLogger(global.M2A_LOG))
  28. global.M2A_LOG.Info("oracle connect successed.")
  29. return engine
  30. }
  31. }