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<>();
|
||||
|
||||
while (resultSet.next()) {
|
||||
// Process each row in separate threads
|
||||
for (Map<Integer, Object> 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();
|
||||
}));
|
||||
|
|
Loading…
Reference in New Issue