dt_automate/dbpool/mysqldb.go

59 lines
1.4 KiB
Go
Raw Normal View History

2025-02-19 18:30:19 +08:00
package dbpool
import (
"database/sql"
2025-03-11 16:22:26 +08:00
"dt_automate/conf"
2025-03-11 16:04:26 +08:00
"dt_automate/tool"
2025-02-19 18:30:19 +08:00
"log"
_ "github.com/go-sql-driver/mysql"
)
2025-03-11 15:07:17 +08:00
var db *sql.DB
2025-02-19 18:30:19 +08:00
func init() {
2025-03-11 16:22:26 +08:00
db, _ = sql.Open("mysql", tool.KeyStr(conf.GET_Config_yaml("mysql.root").(string))+":"+tool.KeyStr(conf.GET_Config_yaml("mysql.password").(string))+"@tcp(fanyu.online:53306)/?charset=utf8&parseTime=True&loc=Local")
2025-03-11 15:07:17 +08:00
db.SetMaxOpenConns(20)
db.SetMaxIdleConns(10)
// DB.SetConnMaxLifetime(100)
err := db.Ping()
2025-02-19 18:30:19 +08:00
if err != nil {
log.Println("database init failed, err: ", err)
return
}
log.Println("mysql conn pool has initiated.")
}
// QueryRows 是一个通用的查询函数它执行SQL查询并返回结果集
func QueryRows(query string, args ...any) (*sql.Rows, error) {
2025-03-11 15:07:17 +08:00
rows, err := db.Query(query, args...)
2025-02-19 18:30:19 +08:00
if err != nil {
return nil, err
}
return rows, nil
}
// ExecuteSQL 是一个通用的插入函数它执行SQL插入并返回结果集
func ExecuteSQL(query string, args ...any) (sql.Result, error) {
2025-03-11 15:07:17 +08:00
result, err := db.Exec(query, args...)
2025-02-19 18:30:19 +08:00
if err != nil {
return nil, err
}
return result, nil
}
type Douy_info struct {
Mobile_phone_number sql.NullString
SerialNumber sql.NullString
Username sql.NullString
Initial_time sql.NullString
End_time sql.NullString
Surplus_time sql.NullString
Key sql.NullString
2025-03-17 00:15:13 +08:00
Status sql.NullString
2025-02-19 18:30:19 +08:00
}