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
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
|
|
}
|
|
}
|