51 lines
1.1 KiB
Go
51 lines
1.1 KiB
Go
package dbpool
|
||
|
||
import (
|
||
"database/sql"
|
||
"log"
|
||
|
||
_ "github.com/go-sql-driver/mysql"
|
||
)
|
||
|
||
var db *sql.DB
|
||
|
||
func init() {
|
||
db, _ = sql.Open("mysql", "root:Lc753951!!@tcp(fanyu.online:53306)/douy?charset=utf8&parseTime=True&loc=Local")
|
||
db.SetMaxOpenConns(20)
|
||
db.SetMaxIdleConns(10)
|
||
db.SetConnMaxLifetime(100)
|
||
err := db.Ping()
|
||
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.Row {
|
||
return db.QueryRow(query, args...)
|
||
}
|
||
|
||
// Query 是一个通用的查询函数,它执行SQL查询并返回结果集
|
||
func Query(query string, args ...any) (*sql.Rows, error) {
|
||
|
||
rows, err := db.Query(query, args...)
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
|
||
return rows, nil
|
||
}
|
||
|
||
// ExecuteSQL 是一个通用的插入函数,它执行SQL插入并返回结果集
|
||
func ExecuteSQL(query string, args ...any) (sql.Result, error) {
|
||
|
||
result, err := db.Exec(query, args...)
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
|
||
return result, nil
|
||
}
|