db.go 920 B

12345678910111213141516171819202122232425262728293031323334353637
  1. package lib
  2. import (
  3. . "gitdxz.51daxuetong.cn/go_dev/jjl-tools/tinodeService/config"
  4. "github.com/jinzhu/gorm"
  5. _ "github.com/jinzhu/gorm/dialects/mysql"
  6. "log"
  7. "sync"
  8. )
  9. var dblock *sync.Mutex = &sync.Mutex{}
  10. var tiDbClient *gorm.DB
  11. var esOnce sync.Once
  12. //GetTiNodeDbInstance 数据库连接实例
  13. func GetTiNodeDbInstance() *gorm.DB {
  14. var err error
  15. esOnce.Do(func() {
  16. config := GlobalConfig
  17. tiDbClient, err = gorm.Open("mysql", config.DbConnect)
  18. if err != nil {
  19. log.Panic(err.Error())
  20. }
  21. //设置闲置的连接数
  22. tiDbClient.DB().SetMaxIdleConns(10)
  23. //设置最大打开的连接数,默认值为0表示不限制
  24. tiDbClient.DB().SetMaxOpenConns(100)
  25. //如果设置为true,`User`的默认表名为`user`,使用`TableName`设置的表名不受影响
  26. tiDbClient.SingularTable(true)
  27. })
  28. return tiDbClient
  29. }
  30. func ColumnIncr(column string) interface{} {
  31. return gorm.Expr(column+" + ?", 1)
  32. }