From 6980639ad0678979d309abf277ae81ced6bc3cee Mon Sep 17 00:00:00 2001
From: yaowanxin <3588231647@qq.com>
Date: 星期四, 24 七月 2025 13:21:38 +0800
Subject: [PATCH] 修改.mysql数据读取

---
 src/main/java/com/chinaztt/mes/docx/service/impl/DocxServiceImpl.java |    7 +++
 src/main/java/com/chinaztt/mes/docx/dto/GetFileDto.java               |    5 ++
 src/main/java/com/chinaztt/mes/docx/util/TakeWords.java               |   66 +++++++++++++++++++++++++-------
 3 files changed, 61 insertions(+), 17 deletions(-)

diff --git a/src/main/java/com/chinaztt/mes/docx/dto/GetFileDto.java b/src/main/java/com/chinaztt/mes/docx/dto/GetFileDto.java
index 93c054e..23cc650 100644
--- a/src/main/java/com/chinaztt/mes/docx/dto/GetFileDto.java
+++ b/src/main/java/com/chinaztt/mes/docx/dto/GetFileDto.java
@@ -16,7 +16,7 @@
     private String mdbEntrustCode;
     // 鏍峰搧缂栧彿瀛楁
     private String mdbSampleCode;
-    // db鏂囦欢鍚嶇О鏁版嵁搴撳悕绉�
+    // db鏂囦欢鍚嶇О
     private String dbFileName;
     // 鍏夌氦甯﹀瓧娈�
     private String fiberOpticRibbonCode;
@@ -26,4 +26,7 @@
     private String dbUserName;
     //鏁版嵁搴撳瘑鐮�
     private String dbPassword;
+    //鏁版嵁搴撹〃鍚�
+    private String dbTable;
+
 }
diff --git a/src/main/java/com/chinaztt/mes/docx/service/impl/DocxServiceImpl.java b/src/main/java/com/chinaztt/mes/docx/service/impl/DocxServiceImpl.java
index 4a45243..89a0bf1 100644
--- a/src/main/java/com/chinaztt/mes/docx/service/impl/DocxServiceImpl.java
+++ b/src/main/java/com/chinaztt/mes/docx/service/impl/DocxServiceImpl.java
@@ -51,7 +51,12 @@
                 if (ObjectUtil.isEmpty(getFileDto.getDbFileName()) || Objects.equals(getFileDto.getDbFileName(), "null")) {
                     return R.failed("鏈厤缃�.db閲囬泦鏂囦欢鍚嶇О锛�");
                 }
-                return R.ok(TakeWords.getmysqlFile(getFileDto));
+                return R.ok(TakeWords.readDbFile(file, getFileDto));
+            case ".mysql":
+                if (ObjectUtil.isEmpty(getFileDto.getDbFileName()) || Objects.equals(getFileDto.getDbFileName(), "null")) {
+                    return R.failed("鏈厤缃�.mysql閲囬泦鏂囦欢鍚嶇О锛�");
+                }
+                return R.ok(TakeWords.getMysqlFile(getFileDto));
             case ".png":
                 return R.ok(TakeWords.readPngFile(file));
             default:
diff --git a/src/main/java/com/chinaztt/mes/docx/util/TakeWords.java b/src/main/java/com/chinaztt/mes/docx/util/TakeWords.java
index 3a7cf0c..bbaa58d 100644
--- a/src/main/java/com/chinaztt/mes/docx/util/TakeWords.java
+++ b/src/main/java/com/chinaztt/mes/docx/util/TakeWords.java
@@ -300,33 +300,69 @@
         } catch (Exception ignore) {
         }
     }
-    public static Object getmysqlFile(GetFileDto getFileDto) throws SQLException, ClassNotFoundException, InstantiationException, IllegalAccessException {
+    public static Object getMysqlFile(GetFileDto getFileDto){
         Map<String, Object> tableMap = new HashMap<>(16);
-        // 鏁版嵁搴撹繛鎺ヤ俊鎭�
-        String url = "jdbc:mysql://localhost:3306/"+getFileDto.getDbFileName()+"?useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true";
+        // 浠� GetFileDto 鑾峰彇鏁版嵁搴撳悕锛屽搴斻�愭枃浠跺悕绉般�戝瓧娈�
+        String dbName = getFileDto.getDbFileName();
         String user = getFileDto.getDbUserName();
         String password = getFileDto.getDbPassword();
-        List<ThicknessData> dataList = new ArrayList<>();
+        // 浠� GetFileDto 鑾峰彇鏁版嵁琛ㄥ悕锛屽搴斻�愭暟鎹簱琛ㄥ悕銆戝瓧娈�
+        String table = getFileDto.getDbTable();
+        // 妫�鏌ユ暟鎹簱鍚嶅拰琛ㄥ悕鏄惁涓虹┖
+        if (dbName == null || dbName.isEmpty() || table == null || table.isEmpty()) {
+            return R.failed("鏁版嵁搴撳悕鎴栬〃鍚嶄笉鑳戒负绌�");
+        }
+        // 鏁版嵁搴撹繛鎺ヤ俊鎭�
+        String url = "jdbc:mysql://localhost:3306/"+dbName+"?useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true";
+        Connection connection = null;
+        PreparedStatement preparedStatement = null;
+        ResultSet resultSet = null;
+        List<Map<String, Object>> dataList = new ArrayList<>();
 
-        try (
-                // 寤虹珛杩炴帴
-                Connection connection = DriverManager.getConnection(url, user, password);
-                // 鍒涘缓 Statement 瀵硅薄鎵ц SQL
-                Statement statement = connection.createStatement()
-        ) {
-            String sql = "SELECT ThinnestPoint, AverageThickness FROM model1records";
-            ResultSet resultSet = statement.executeQuery(sql);
+        try {
+            // 寤虹珛杩炴帴
+            connection = DriverManager.getConnection(url, user, password);
+            // 鏋勫缓鍩虹 SQL
 
+            StringBuilder sql = new StringBuilder("SELECT * FROM ").append(table);
+            // 鍒涘缓 PreparedStatement 瀵硅薄鎵ц SQL
+            preparedStatement = connection.prepareStatement(sql.toString());
+            resultSet = preparedStatement.executeQuery();
+            ResultSetMetaData metaData = resultSet.getMetaData();
+            int columnCount = metaData.getColumnCount();
             // 閬嶅巻缁撴灉闆嗚幏鍙栨暟鎹�
             while (resultSet.next()) {
-                double thinnestPoint = resultSet.getDouble("ThinnestPoint");
-                double averageThickness = resultSet.getDouble("AverageThickness");
-                dataList.add(new ThicknessData(thinnestPoint, averageThickness));
+                Map<String, Object> rowData = new HashMap<>();
+                for (int i = 1; i <= columnCount; i++) {
+                    String columnName = metaData.getColumnName(i);
+                    rowData.put(columnName, resultSet.getObject(i));
+                }
+                dataList.add(rowData);
             }
+//            while (resultSet.next()) {
+//                double thinnestPoint = resultSet.getDouble("ThinnestPoint");
+//                double averageThickness = resultSet.getDouble("AverageThickness");
+//                dataList.add(new ThicknessData(thinnestPoint, averageThickness));
+//            }
             tableMap.put("data", dataList);
         } catch (Exception e) {
             e.printStackTrace();
+            // 鍋囪 R 绫绘湁 failed 鏂规硶锛岃嫢娌℃湁闇�琛ュ厖瀹炵幇
             return R.failed("鏁版嵁搴撴煡璇㈠嚭閿�: " + e.getMessage());
+        } finally {
+            try {
+                if (resultSet != null) {
+                    resultSet.close();
+                }
+                if (preparedStatement != null) {
+                    preparedStatement.close();
+                }
+                if (connection != null) {
+                    connection.close();
+                }
+            } catch (SQLException e) {
+                e.printStackTrace();
+            }
         }
         return tableMap;
     }

--
Gitblit v1.9.3