09051914:对这个资产展示使用线程池的方法去做,第三次优化代码
parent
190ed47dac
commit
626f638d0c
|
@ -219,17 +219,29 @@ public class DataValueServiceImpl extends ServiceImpl<DataValueMapper, DataValue
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Collect all rows first
|
||||||
|
List<Map<Integer, Object>> rows = new ArrayList<>();
|
||||||
|
while (resultSet.next()) {
|
||||||
|
Map<Integer, Object> row = new HashMap<>();
|
||||||
|
for (int i = 1; i <= columnCount; i++) {
|
||||||
|
row.put(i, resultSet.getObject(i));
|
||||||
|
}
|
||||||
|
rows.add(row);
|
||||||
|
}
|
||||||
|
|
||||||
List<Future<DataValue>> futures = new ArrayList<>();
|
List<Future<DataValue>> futures = new ArrayList<>();
|
||||||
|
|
||||||
while (resultSet.next()) {
|
// Process each row in separate threads
|
||||||
|
for (Map<Integer, Object> row : rows) {
|
||||||
for (int i = 1; i <= columnCount; i++) {
|
for (int i = 1; i <= columnCount; i++) {
|
||||||
final int index = i;
|
final int index = i;
|
||||||
|
final Object value = row.get(index);
|
||||||
futures.add(executorService.submit(() -> {
|
futures.add(executorService.submit(() -> {
|
||||||
String columnTypeName = metaData.getColumnTypeName(index);
|
String columnTypeName = metaData.getColumnTypeName(index);
|
||||||
return DataValue.builder()
|
return DataValue.builder()
|
||||||
.key(metaData.getColumnName(index))
|
.key(metaData.getColumnName(index))
|
||||||
.label(columnRemarks.getOrDefault(index, ""))
|
.label(columnRemarks.getOrDefault(index, ""))
|
||||||
.value(resultSet.getObject(index, DataType.convertType(columnTypeName)))
|
.value(value)
|
||||||
.type(DataType.convertTypeString(columnTypeName))
|
.type(DataType.convertTypeString(columnTypeName))
|
||||||
.build();
|
.build();
|
||||||
}));
|
}));
|
||||||
|
|
Loading…
Reference in New Issue