mirror of
https://github.com/zr-hebo/sniffer-agent.git
synced 2025-08-09 16:00:01 +08:00
add vendor packages避免用户网络太慢无法下载编译
This commit is contained in:
105
vendor/github.com/zr-hebo/util-db/query_pooled_db.go
generated
vendored
Normal file
105
vendor/github.com/zr-hebo/util-db/query_pooled_db.go
generated
vendored
Normal file
@@ -0,0 +1,105 @@
|
||||
package db
|
||||
|
||||
import (
|
||||
"database/sql"
|
||||
"sync"
|
||||
"time"
|
||||
)
|
||||
|
||||
|
||||
// PooledMysqlDB Mysql主机实例
|
||||
type PooledMysqlDB struct {
|
||||
MysqlDB
|
||||
conn *sql.DB
|
||||
lock *sync.Mutex
|
||||
}
|
||||
|
||||
// NewPooledMysqlDBWithParam 带参数创建MySQL数据库
|
||||
func NewPooledMysqlDBWithParam(
|
||||
ip string, port int, userName, passwd string) (
|
||||
pmd *PooledMysqlDB) {
|
||||
pmd = NewPooledMysqlDB()
|
||||
pmd.IP = ip
|
||||
pmd.Port = port
|
||||
pmd.UserName = userName
|
||||
pmd.Passwd = passwd
|
||||
pmd.DatabaseType = dbTypeMysql
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
// NewPooledMysqlDBWithAllParam 带参数创建MySQL数据库
|
||||
func NewPooledMysqlDBWithAllParam(
|
||||
ip string, port int, userName, passwd, dbName string) (
|
||||
pmd *PooledMysqlDB) {
|
||||
pmd = NewPooledMysqlDB()
|
||||
pmd.IP = ip
|
||||
pmd.Port = port
|
||||
pmd.UserName = userName
|
||||
pmd.Passwd = passwd
|
||||
pmd.DBName = dbName
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
// NewPooledMysqlDB 创建MySQL数据库
|
||||
func NewPooledMysqlDB() (pmd *PooledMysqlDB) {
|
||||
pmd = new(PooledMysqlDB)
|
||||
pmd.DatabaseType = dbTypeMysql
|
||||
pmd.lock = new(sync.Mutex)
|
||||
return
|
||||
}
|
||||
|
||||
// CloseConnection 获取数据库连接
|
||||
func (pmd *PooledMysqlDB) CloseConnection() (err error) {
|
||||
if pmd.conn == nil {
|
||||
return
|
||||
}
|
||||
|
||||
err = pmd.conn.Close()
|
||||
return
|
||||
}
|
||||
|
||||
// GetConnection 获取数据库连接
|
||||
func (pmd *PooledMysqlDB) GetConnection() (conn *sql.DB, err error) {
|
||||
pmd.lock.Lock()
|
||||
defer func() {
|
||||
pmd.lock.Unlock()
|
||||
}()
|
||||
|
||||
if pmd.conn != nil {
|
||||
conn = pmd.conn
|
||||
return
|
||||
}
|
||||
|
||||
conn, err = pmd.MysqlDB.getConnection()
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
conn.SetConnMaxLifetime(time.Second * 60 * 30)
|
||||
conn.SetMaxOpenConns(0)
|
||||
if err := conn.Ping(); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
pmd.conn = conn
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
// ExecChange 执行MySQL Query语句
|
||||
func (pmd *PooledMysqlDB) ExecChange(stmt string, args ...interface{}) (
|
||||
result sql.Result, err error) {
|
||||
return pmd.MysqlDB.ExecChange(stmt, args...)
|
||||
}
|
||||
|
||||
// QueryRows 执行MySQL Query语句
|
||||
func (pmd *PooledMysqlDB) QueryRows(stmt string) (queryRows *QueryRows, err error) {
|
||||
return pmd.MysqlDB.QueryRows(stmt)
|
||||
|
||||
}
|
||||
|
||||
// QueryRow 执行MySQL Query语句
|
||||
func (pmd *PooledMysqlDB) QueryRow(stmt string) (row *QueryRow, err error) {
|
||||
return pmd.MysqlDB.QueryRow(stmt)
|
||||
}
|
Reference in New Issue
Block a user