package GPUtil import ( "dsDataex/Utils/CommonUtil" "dsDataex/Utils/ConfigUtil" "fmt" _ "github.com/lib/pq" "github.com/xormplus/xorm" "time" ) var Engine *xorm.Engine var ServerVersion string /** * @Author zhangjun * @Description * @Date 2021-02-06 10:00 * @Param * @return **/ func init() { host := ConfigUtil.GreenPlumIp port := ConfigUtil.GreenPlumPort user := ConfigUtil.GreenPlumUser dbname := ConfigUtil.GreenPlumDataBase password := ConfigUtil.GreenPlumPwd master := fmt.Sprintf("postgres://%s:%s@%s:%s/%s?sslmode=disable", user, password, host, port, dbname) var err error Engine, err = xorm.NewPostgreSQL(master) if err != nil { fmt.Println(err) } ServerVersion = Engine.DriverName() //设置数据库连接池 Engine.SetMaxOpenConns(100) Engine.SetMaxIdleConns(10) Engine.SetConnMaxLifetime(time.Second * 30) err = Engine.Ping() if err != nil { fmt.Println("GreenPlum Err :", err.Error()) } go func() { for { time.Sleep(time.Duration(600) * time.Second) err = Engine.Ping() if err != nil { fmt.Println("\n[xorm] [error] " + CommonUtil.GetCurrentTime() + err.Error()) } else { fmt.Println("\n[xorm] [info] " + CommonUtil.GetCurrentTime() + " PING DATABASE greenplum") } } }() } /** * @Author zhangjun * @Description * @Date 2021-02-06 10:00 * @Param * @return **/ func SqlQuery(sql string, param []interface{}) (bool, string, []map[string]interface{}) { if len(param) > 0 { result, err := Engine.SQL(sql, param...).QueryInterface() if err!=nil{ return false,err.Error(),result } return true,"数据查询成功", result } else { result, err := Engine.SQL(sql).QueryInterface() if err!=nil{ return false,err.Error(),result } return true,"数据查询成功", result } } /** * @Author zhangjun * @Description * @Date 2021-02-06 11:11 * @Param * @return **/ func SqlQueryJson(sql string, param []interface{}) (bool,string, string) { if len(param) > 0 { result, err := Engine.SQL(sql, param...).Query().Json() if err!=nil{ return false,err.Error(),result } return true,"数据查询成功", result } else { result, err := Engine.SQL(sql).Query().Json() if err!=nil{ return false,err.Error(),result } return true,"数据查询成功", result } } /** * @Author zhangjun * @Description * @Date 2021-02-06 11:16 * @Param * @return **/ func SqlQueryXml(sql string, param []interface{}) (bool,string, string) { if len(param) > 0 { result, err := Engine.SQL(sql, param...).Query().Xml() if err!=nil{ return false,err.Error(),result } return true,"数据查询成功", result } else { result, err := Engine.SQL(sql).Query().Xml() if err!=nil{ return false,err.Error(),result } return true,"数据查询成功", result } }