db2.go 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. package models
  2. import (
  3. _ "dm"
  4. dm "dmgorm2"
  5. "fmt"
  6. "gorm.io/gorm"
  7. "gorm.io/gorm/logger"
  8. "time"
  9. _ "github.com/go-sql-driver/mysql"
  10. )
  11. // 达梦数据库连接
  12. func initDm2(dsn, aliasName string, newLogger logger.Interface, dmSqlMap map[string]*gorm.DB, isDefault bool) {
  13. if dsn == `` {
  14. return
  15. }
  16. //dsn := "dm://SYSDBA:SYSDBA001@8.136.199.33:30236?schema=\"eta_master\""
  17. //dsn := "dm://ETA:Han6258199118%60@localhost:5236?schema=ECOLOGY_TARGET"
  18. db, err := gorm.Open(dm.Open(dsn), &gorm.Config{
  19. Logger: newLogger,
  20. })
  21. if err != nil {
  22. //global.LOG.Errorf("mysql 启动异常,数据库:default;Err:", err)
  23. panic(fmt.Errorf("mysql 启动异常,数据库:%s;Err:%s", aliasName, err))
  24. }
  25. //创建连接池
  26. sqlDB, err := db.DB()
  27. if err != nil {
  28. //global.LOG.Errorf("mysql 创建连接池失败,数据库:default;Err:", err)
  29. panic(fmt.Errorf("mysql 创建连接池失败,数据库:%s;Err:%s", aliasName, err))
  30. }
  31. dmSqlMap[aliasName] = db
  32. //默认数据库连接
  33. if isDefault {
  34. DEFAULT_DmSQL = db
  35. }
  36. // SetMaxIdleConns 设置空闲连接池中连接的最大数量
  37. sqlDB.SetMaxIdleConns(50)
  38. // SetMaxOpenConns 设置打开数据库连接的最大数量。
  39. sqlDB.SetMaxOpenConns(100)
  40. // SetConnMaxLifetime 设置了连接可复用的最大时间。
  41. sqlDB.SetConnMaxLifetime(10 * time.Minute)
  42. }