2025-02-19 18:30:19 +08:00
|
|
|
|
package dbpool
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"database/sql"
|
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:04:26 +08:00
|
|
|
|
db, _ = sql.Open("mysql", tool.KeyStr("SROH9rAd7V+xC9GAaf4ougPGUPaeddd/KB5Or5qn6v9BHp286pZWHWbILgvUqA5j3WcBoRuQhVZ126KryjRTZKbbWuG3b7P7aHVZa2BTd4g/Dk8OCRWDZ0idCbi+68ZY4BCtSNhRHJ3yGvxphR6jeKoRpiNfnQ6iMJkHj00LJi/kQ/Gv/AW+ZLLJFU3PN3LkdbVt6qaexNhZoo7dDL7fyWxlpn/pfpa2kI41MvY8U3c14McB2MSwID8jyHCnk02HFPZC+xkDQU4RLEd+Br8/jcoWRlZvkFx/PW86CDdkskK2Fyun2/Zpo4pzQ1FrjdMpTgO1kR8LTcLLheS8zdSFBg==")+":"+tool.KeyStr("sLy1ZxZBEroGcoSv75P/xigUJ59/Yhsz1Z7896WzArcImdobrwg5+N6QEo4yT6CcpW22Y6bYy6a0ZWYAEzDaKZhOQG0odaUAv/SDP7JM7l7hH987XFJkUauaETu97Ev0kObsbS4laEiEg/+VG8fQrPuD2iRax1IWGXTKOtn+gHlyzSp016OhKOUUKKdW16OaC8AbVX9F3tVp10c2hsQNvLJl27MN5m3jXpoq9CTdcXsk15oHZVuIp3Kj9RWa8azpauiCPEKVE1KPvuJAhPYYakZBAdxGNU7Ye/YPZq68PJZHm6otEsaQxGJB1+DRNYh0oFWN9+aSYph6kAn0p5/c4g==")+"@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
|
|
|
|
|
}
|