diff --git a/muyu-source-server/src/main/java/com/muyu/source/service/Impl/DataValueServiceImpl.java b/muyu-source-server/src/main/java/com/muyu/source/service/Impl/DataValueServiceImpl.java index 2ebf564..bbc1695 100644 --- a/muyu-source-server/src/main/java/com/muyu/source/service/Impl/DataValueServiceImpl.java +++ b/muyu-source-server/src/main/java/com/muyu/source/service/Impl/DataValueServiceImpl.java @@ -219,17 +219,29 @@ public class DataValueServiceImpl extends ServiceImpl> rows = new ArrayList<>(); + while (resultSet.next()) { + Map row = new HashMap<>(); + for (int i = 1; i <= columnCount; i++) { + row.put(i, resultSet.getObject(i)); + } + rows.add(row); + } + List> futures = new ArrayList<>(); - while (resultSet.next()) { + // Process each row in separate threads + for (Map row : rows) { for (int i = 1; i <= columnCount; i++) { final int index = i; + final Object value = row.get(index); futures.add(executorService.submit(() -> { String columnTypeName = metaData.getColumnTypeName(index); return DataValue.builder() .key(metaData.getColumnName(index)) .label(columnRemarks.getOrDefault(index, "")) - .value(resultSet.getObject(index, DataType.convertType(columnTypeName))) + .value(value) .type(DataType.convertTypeString(columnTypeName)) .build(); }));