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