You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

132 lines
2.5 KiB

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)
Engine.Ping()
go func() {
for {
time.Sleep(time.Duration(600) * time.Second)
Engine.Ping()
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
}
}