09052029:对这个资产展示使用线程池的方法去做,第五次优化代码

master
冷调 2024-09-05 20:29:48 +08:00
parent 230606de1d
commit 6c2130678c
1 changed files with 33 additions and 26 deletions

View File

@ -178,9 +178,12 @@ public class DataValueServiceImpl extends ServiceImpl<DataValueMapper, DataValue
private int getTotalRecords(MysqlPool mysqlPool, String tableName) throws SQLException {
try (Connection conn = mysqlPool.getConn();
Statement statement = conn.createStatement();
ResultSet resultSet = statement.executeQuery("SELECT COUNT(*) FROM " + tableName)) {
if (resultSet.next()) {
Statement statement = conn != null ? conn.createStatement() : null;
ResultSet resultSet = statement != null ? statement.executeQuery("SELECT COUNT(*) FROM " + tableName) : null) {
if (conn == null) {
throw new SQLException("Failed to get database connection");
}
if (resultSet != null && resultSet.next()) {
return resultSet.getInt(1);
} else {
throw new SQLException("Failed to get total record count");
@ -192,33 +195,37 @@ public class DataValueServiceImpl extends ServiceImpl<DataValueMapper, DataValue
List<DataValue> batchResults = new ArrayList<>();
String query = "SELECT * FROM " + tableName + " LIMIT ? OFFSET ?";
try (Connection conn = mysqlPool.getConn();
PreparedStatement preparedStatement = conn.prepareStatement(query)) {
preparedStatement.setInt(1, BATCH_SIZE);
preparedStatement.setInt(2, offset);
try (Connection conn = mysqlPool.getConn()) {
if (conn == null) {
throw new SQLException("Failed to get database connection");
}
try (PreparedStatement preparedStatement = conn.prepareStatement(query)) {
preparedStatement.setInt(1, BATCH_SIZE);
preparedStatement.setInt(2, offset);
try (ResultSet resultSet = preparedStatement.executeQuery()) {
ResultSetMetaData metaData = resultSet.getMetaData();
int columnCount = metaData.getColumnCount();
try (ResultSet resultSet = preparedStatement.executeQuery()) {
ResultSetMetaData metaData = resultSet.getMetaData();
int columnCount = metaData.getColumnCount();
while (resultSet.next()) {
for (int i = 1; i <= columnCount; i++) {
String columnTypeName = metaData.getColumnTypeName(i);
while (resultSet.next()) {
for (int i = 1; i <= columnCount; i++) {
String columnTypeName = metaData.getColumnTypeName(i);
DatabaseMetaData metaDataColumns = conn.getMetaData();
ResultSet columns = metaDataColumns.getColumns(null, null, metaData.getTableName(i), metaData.getColumnName(i));
String remarks = null;
while (columns.next()) {
remarks = columns.getString("REMARKS");
DatabaseMetaData metaDataColumns = conn.getMetaData();
ResultSet columns = metaDataColumns.getColumns(null, null, metaData.getTableName(i), metaData.getColumnName(i));
String remarks = null;
while (columns.next()) {
remarks = columns.getString("REMARKS");
}
DataValue build = DataValue.builder()
.key(metaData.getColumnName(i))
.label(remarks)
.value(resultSet.getObject(i, DataType.convertType(columnTypeName)))
.type(DataType.convertTypeString(columnTypeName))
.build();
batchResults.add(build);
}
DataValue build = DataValue.builder()
.key(metaData.getColumnName(i))
.label(remarks)
.value(resultSet.getObject(i, DataType.convertType(columnTypeName)))
.type(DataType.convertTypeString(columnTypeName))
.build();
batchResults.add(build);
}
}
}