From 770cde41bdf264adf4dadf1c033ef12c69f32287 Mon Sep 17 00:00:00 2001 From: junleea <354425203@qq.com> Date: Thu, 2 Oct 2025 21:30:08 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=8E=B7=E5=8F=96sql=20db?= =?UTF-8?q?=E8=BF=9E=E6=8E=A5=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- handler/dbm.go | 2 +- service/dbmService.go | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/handler/dbm.go b/handler/dbm.go index 0dd97d4..0e948ec 100644 --- a/handler/dbm.go +++ b/handler/dbm.go @@ -168,6 +168,7 @@ func RunSQLHandler(c *gin.Context) { resp.Code = proto.ParameterError resp.Message = "请求参数解析错误" } else { + log.Println("run sql request, sql is:", req.SQL) req.UserID = userID res, err2 := service.RunSQL(&req) if err2 != nil { @@ -179,7 +180,6 @@ func RunSQLHandler(c *gin.Context) { resp.Data = res } } - log.Println("run sql resp, sql is:", req.SQL) c.JSON(http.StatusOK, resp) return } diff --git a/service/dbmService.go b/service/dbmService.go index cddedb0..5cae92d 100644 --- a/service/dbmService.go +++ b/service/dbmService.go @@ -39,7 +39,6 @@ func RunSQL(req *proto.RunSQLRequest) (*proto.SQLResult, error) { func GetGORMDBObject(dbmInfo *proto.DBManage) (db_ *gorm.DB, err error) { dao.DBMMapRWMutex.RLock() - defer dao.DBMMapRWMutex.RUnlock() if dao.DBMMap != nil { dbValue := dao.DBMMap[dbmInfo.ID] if dbValue != nil { @@ -47,6 +46,7 @@ func GetGORMDBObject(dbmInfo *proto.DBManage) (db_ *gorm.DB, err error) { return dbValue.Value, nil } } + dao.DBMMapRWMutex.RUnlock() switch dbmInfo.DB_Type { case proto.DB_TYPE_MYSQL: // MySQL @@ -57,6 +57,7 @@ func GetGORMDBObject(dbmInfo *proto.DBManage) (db_ *gorm.DB, err error) { } case proto.DB_TYPE_POSTGRES: // PostgreSQL dsn := "host=" + dbmInfo.DB_IP + " user=" + dbmInfo.DB_User + " password=" + dbmInfo.DB_Password + " dbname=" + dbmInfo.DB_NAME + " port=" + strconv.Itoa(int(dbmInfo.DB_Port)) + " sslmode=disable TimeZone=Asia/Shanghai" + db_, err = gorm.Open(postgres.Open(dsn), &gorm.Config{}) if err != nil { return nil, err @@ -66,11 +67,11 @@ func GetGORMDBObject(dbmInfo *proto.DBManage) (db_ *gorm.DB, err error) { } dao.DBMMapRWMutex.Lock() - defer dao.DBMMapRWMutex.Unlock() var dbValue *proto.DBValue dbValue.Value = db_ dbValue.LastUserTime = worker.GetCurrentTimestamp() dao.DBMMap[dbmInfo.ID] = dbValue + dao.DBMMapRWMutex.Unlock() return db_, err }