From e61d7cb768df2c319069f264d3eda8f91db0f6e7 Mon Sep 17 00:00:00 2001
From: liriming <1343021927@qq.com>
Date: 星期四, 19 六月 2025 18:26:33 +0800
Subject: [PATCH] 关闭jdbc链接

---
 ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/SyncEmsTask.java |   20 ++++++++++++++++----
 1 files changed, 16 insertions(+), 4 deletions(-)

diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/SyncEmsTask.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/SyncEmsTask.java
index 5a6b846..f989ee0 100644
--- a/ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/SyncEmsTask.java
+++ b/ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/SyncEmsTask.java
@@ -10,6 +10,7 @@
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.sql.*;
 import java.text.SimpleDateFormat;
@@ -35,6 +36,7 @@
     private SyncLogService syncLogService;
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public void run(String params) {
         logger.info("SyncEmsTask定时任务正在执行,参数为:{}", params);
         String remark = "同步成功";
@@ -49,14 +51,17 @@
 
         String sql = "SELECT * FROM ems.BYQLZ_ADS_WH_CL_JH01_BYQ WHERE date_code = ?";
 
+        Connection conn = null;
+        PreparedStatement pstmt = null;
+        ResultSet rs = null;
         try {
-            Connection conn = DriverManager.getConnection(URL, USER, PASSWORD);
-            PreparedStatement pstmt = conn.prepareStatement(sql);
+            conn = DriverManager.getConnection(URL, USER, PASSWORD);
+            pstmt = conn.prepareStatement(sql);
             // 设置参数
             pstmt.setString(1, yearMonth);
 
             // 执行查询并处理结果
-            ResultSet rs = pstmt.executeQuery();
+            rs = pstmt.executeQuery();
             if(!rs.isBeforeFirst()){
                 pstmt.setString(1, lastMonth);
                 rs = pstmt.executeQuery();
@@ -70,7 +75,6 @@
             }
             byqlzAdsService.delete(yearMonth);
             while (rs.next()) {
-                logger.error("进入循环");
                 ByqlzAdsEntity entity = new ByqlzAdsEntity();
 
                 // 映射基础字段
@@ -132,6 +136,14 @@
         } catch (SQLException e) {
             logger.error("SyncEmsTask运行异常");
             e.printStackTrace();
+        } finally {
+            try {
+                if (rs != null) rs.close();     // 先关闭结果集
+                if (pstmt != null) pstmt.close(); // 再关闭语句
+                if (conn != null) conn.close(); // 最后关闭连接
+            } catch (SQLException e) {
+                e.printStackTrace();
+            }
         }
         logger.info("SyncEmsTask运行完成");
     }

--
Gitblit v1.9.3