From f2b83a8732e88d0c0f603e00882559f287b72598 Mon Sep 17 00:00:00 2001 From: azw Date: Sun, 20 Aug 2023 14:40:32 +0800 Subject: [PATCH] 1 --- dbpool.go | 31 +++++++++++++++++++------------ 1 file changed, 19 insertions(+), 12 deletions(-) diff --git a/dbpool.go b/dbpool.go index 509a9e2..848390f 100644 --- a/dbpool.go +++ b/dbpool.go @@ -182,12 +182,16 @@ func (this *dbPool) PageQuery( }) } -func (this *dbPool) borrowConn(dataSource string) *q5.Mysql { +func (this *dbPool) borrowConn(dataSource string) *dataSource { + this.lock.Lock() + defer this.lock.Unlock() + return nil } -func (this *dbPool) returnConn(conn *q5.Mysql) { - +func (this *dbPool) returnConn(ds *dataSource) { + this.lock.Lock() + defer this.lock.Unlock() } func (this *dbPool) joinSelectFields(fields []string) string { @@ -216,9 +220,10 @@ func (this *dbPool) joinInsertFields(fieldsKv [][]string, params *[]string) stri func (this *dbPool) internalExec(dataSource string, sql string, params []string, cb ExecResultCb) { - conn := this.borrowConn(dataSource) - defer this.returnConn(conn) - result, err := conn.Exec(sql, q5.ToInterfaces(params)...) + ds := this.borrowConn(dataSource) + result, err := ds.conn.Exec(sql, q5.ToInterfaces(params)...) + this.returnConn(ds) + var lastInsertId int64 var rowsAffected int64 if err == nil { @@ -241,9 +246,10 @@ func (this *dbPool) internalExec(dataSource string, sql string, params []string, func (this *dbPool) internalQuery(dataSource string, sql string, params []string, cb QueryResultCb) { - conn := this.borrowConn(dataSource) - defer this.returnConn(conn) - rows, err := conn.Query(sql, q5.ToInterfaces(params)...) + ds := this.borrowConn(dataSource) + rows, err := ds.conn.Query(sql, q5.ToInterfaces(params)...) + this.returnConn(ds) + if this.style == GO_STYLE_DB { cb(err, NewDataSet(rows)) } else { @@ -256,9 +262,10 @@ func (this *dbPool) internalQuery(dataSource string, sql string, params []string func (this *dbPool) internalQueryOne(dataSource string, sql string, params []string, cb QueryOneCb) { - conn := this.borrowConn(dataSource) - defer this.returnConn(conn) - rows, err := conn.Query(sql, q5.ToInterfaces(params)...) + ds := this.borrowConn(dataSource) + rows, err := ds.conn.Query(sql, q5.ToInterfaces(params)...) + this.returnConn(ds) + values := &[]*string{} if err == nil { dataSet := NewDataSet(rows)