12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- package dbBase
- import (
- "database/sql"
- "fmt"
- "time"
- _ "xg_once_query/go-driver-xugusql"
- "xg_once_query/setting"
- log "github.com/sirupsen/logrus"
- )
- func DbInit() *sql.DB {
- db := setting.DbInfo.Db
- ip := setting.DbInfo.DbHost
- port := setting.DbInfo.DbPort
- dbName := setting.DbInfo.DbName
- user := setting.DbInfo.DbUser
- pwd := setting.DbInfo.DbPassWord
- fmt.Println(db, ip, port, dbName, user, pwd)
- dataSourceNameL := fmt.Sprintf("IP=%s;DB=%s;User=%s;PWD=%s;Port=%s;AUTO_COMMIT=on;CHAR_SET=UTF8", ip, dbName, user, pwd, port)
- dBase, err := sql.Open(db, dataSourceNameL)
- if err != nil {
- log.Println("数据库连接失败:", err)
- }
- return dBase
- }
- func DbQuery(db *sql.DB, sql string) {
- log.Println("sql:", sql)
- if len(sql) < 4 {
- return
- }
- if sql[0:4] == "show" || len(sql) < 6 || sql[0:6] == "select" || sql[0:6] == "SELECT" {
- rows, err := db.Query(sql)
- if err != nil {
- log.Println("数据库查询失败:", err)
- return
- }
- //获取表列名
- colHeads, err := rows.Columns()
- if err != nil {
- log.Println("DbQuery:获取表列名失败", err)
- return
- }
- //表数据空间生成
- pvals := make([]interface{}, len(colHeads))
- for key := range pvals {
- dest := make([]byte, 216)
- pvals[key] = &dest
- }
- if len(colHeads) < 9 {
- TablePrint(rows, colHeads, pvals)
- } else {
- TablePrints(rows, colHeads, pvals)
- }
- } else {
- fmt.Println("非查询语句")
- return
- }
- }
- func DbExec(db *sql.DB, sql string) {
- startTime := time.Now()
- result, err := db.Exec(sql)
- if err != nil {
- log.Println(err)
- return
- }
- lastInsertID, _ := result.LastInsertId()
- rowsAffected, _ := result.RowsAffected()
- duration := time.Since(startTime) // 计算执行时间
- fmt.Printf("SQL 执行耗时: %s\n", duration)
- fmt.Printf("Last Insert ID: %d\n", lastInsertID)
- fmt.Printf("Rows Affected: %d\n", rowsAffected)
- }
|