|
|
|
|
package DAL
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"database/sql"
|
|
|
|
|
"flx/Common"
|
|
|
|
|
"fmt"
|
|
|
|
|
"net/url"
|
|
|
|
|
|
|
|
|
|
_ "github.com/go-sql-driver/mysql"
|
|
|
|
|
log "github.com/sirupsen/logrus"
|
|
|
|
|
_ "kingbase.com/gokb"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
var cdb *sql.DB
|
|
|
|
|
|
|
|
|
|
// /connect the database
|
|
|
|
|
func DBConnect() (*sql.DB, error) {
|
|
|
|
|
|
|
|
|
|
defer func() {
|
|
|
|
|
if r := recover(); r != nil {
|
|
|
|
|
log.Error("DBConnect:", r)
|
|
|
|
|
}
|
|
|
|
|
}()
|
|
|
|
|
|
|
|
|
|
cfig := Common.LoadConfig()
|
|
|
|
|
|
|
|
|
|
// connStr := "host=" + cfig.Kingbase.IP + " user=" + cfig.Kingbase.Username + " password=" + cfig.Kingbase.Password + " dbname=" + cfig.Kingbase.Name + " sslmode=disable"
|
|
|
|
|
password := url.QueryEscape(cfig.Kingbase.Password)
|
|
|
|
|
connStr := fmt.Sprintf("%s:%s@tcp(%s:%d)/%s?charset=utf8mb4&parseTime=True&loc=Local&tls=skip-verify",
|
|
|
|
|
cfig.Kingbase.Username,
|
|
|
|
|
password,
|
|
|
|
|
cfig.Kingbase.IP,
|
|
|
|
|
3306, // 确保这是数值类型(如 3306)
|
|
|
|
|
cfig.Kingbase.Name,
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
db, err := sql.Open("mysql", connStr)
|
|
|
|
|
if err != nil {
|
|
|
|
|
fmt.Println(err.Error())
|
|
|
|
|
return nil, err
|
|
|
|
|
}
|
|
|
|
|
err = db.Ping()
|
|
|
|
|
if err != nil {
|
|
|
|
|
fmt.Println(err.Error())
|
|
|
|
|
return nil, err
|
|
|
|
|
}
|
|
|
|
|
return db, nil
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func ConntectDB() *sql.DB {
|
|
|
|
|
|
|
|
|
|
defer func() {
|
|
|
|
|
if r := recover(); r != nil {
|
|
|
|
|
log.Error("ConntectDB:", r)
|
|
|
|
|
}
|
|
|
|
|
}()
|
|
|
|
|
|
|
|
|
|
if cdb == nil {
|
|
|
|
|
cdb, _ = DBConnect()
|
|
|
|
|
}
|
|
|
|
|
return cdb
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// close the database connect
|
|
|
|
|
func CloseDB() bool {
|
|
|
|
|
|
|
|
|
|
defer func() {
|
|
|
|
|
if r := recover(); r != nil {
|
|
|
|
|
log.Error("CloseDB:", r)
|
|
|
|
|
}
|
|
|
|
|
}()
|
|
|
|
|
|
|
|
|
|
if cdb != nil {
|
|
|
|
|
err := cdb.Close()
|
|
|
|
|
if err != nil {
|
|
|
|
|
fmt.Println(err.Error())
|
|
|
|
|
return false
|
|
|
|
|
}
|
|
|
|
|
return true
|
|
|
|
|
}
|
|
|
|
|
return false
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func Text() {
|
|
|
|
|
|
|
|
|
|
defer func() {
|
|
|
|
|
if r := recover(); r != nil {
|
|
|
|
|
log.Error("Text:", r)
|
|
|
|
|
}
|
|
|
|
|
}()
|
|
|
|
|
|
|
|
|
|
// connStr := "host=114.64.231.197 user=SYSTEM password=system dbname=dbcongress sslmode=disable"
|
|
|
|
|
|
|
|
|
|
connStr := "host=127.0.0.1 user=SYSTEM password=system dbname=dbcongress sslmode=disable"
|
|
|
|
|
db, err := sql.Open("kingbase", connStr)
|
|
|
|
|
if err != nil {
|
|
|
|
|
fmt.Println(err.Error())
|
|
|
|
|
}
|
|
|
|
|
err = db.Ping()
|
|
|
|
|
if err != nil {
|
|
|
|
|
fmt.Println(err.Error())
|
|
|
|
|
}
|
|
|
|
|
rows, err := db.Query("SELECT \"St_ID\",\"St_Name\" FROM dbcongress.t_staffinfo")
|
|
|
|
|
if err != nil {
|
|
|
|
|
fmt.Println(err.Error())
|
|
|
|
|
}
|
|
|
|
|
defer rows.Close()
|
|
|
|
|
|
|
|
|
|
var St_ID, St_Name string
|
|
|
|
|
for rows.Next() {
|
|
|
|
|
err := rows.Scan(&St_ID, &St_Name)
|
|
|
|
|
if err != nil {
|
|
|
|
|
break
|
|
|
|
|
}
|
|
|
|
|
fmt.Println(St_ID, St_Name)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
db.Close()
|
|
|
|
|
}
|