修改查询语句

master
lwj 2024-09-09 01:19:20 +08:00
parent a4802c09cd
commit d1dce90cf8
1 changed files with 54 additions and 48 deletions

View File

@ -8,8 +8,6 @@ import com.muyu.data.base.BaseDataAbsSource;
import com.muyu.domain.DataValue; import com.muyu.domain.DataValue;
import com.muyu.domain.Source; import com.muyu.domain.Source;
import com.muyu.domain.enums.DataType; import com.muyu.domain.enums.DataType;
import com.muyu.domain.mysql.MysqlPool;
import com.muyu.domain.mysql.config.MysqlPoolConfig;
import com.zaxxer.hikari.HikariDataSource; import com.zaxxer.hikari.HikariDataSource;
import lombok.extern.log4j.Log4j2; import lombok.extern.log4j.Log4j2;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@ -34,52 +32,52 @@ public class MySqlDataSource extends BaseDataAbsSource {
@Override @Override
public DataValue[] getRow () { public DataValue[] getRow () {
MySqlQuery query = getQuery(); // MySqlQuery query = getQuery();
String sql = query.getSql(); // String sql = query.getSql();
Long dataSourceId = query.getDataSourceId(); // Long dataSourceId = query.getDataSourceId();
ConcurrentHashMap<Integer, DataValue> map = new ConcurrentHashMap<>(); // ConcurrentHashMap<Integer, DataValue> map = new ConcurrentHashMap<>();
Source dataSources = sourceService.getById(dataSourceId); // Source dataSources = sourceService.getById(dataSourceId);
MysqlPoolConfig mysqlPoolConfig = Source.getMysqlPoolConfig(dataSources); // MysqlPoolConfig mysqlPoolConfig = Source.getMysqlPoolConfig(dataSources);
//
MysqlPool mysqlPool = new MysqlPool(mysqlPoolConfig); // MysqlPool mysqlPool = new MysqlPool(mysqlPoolConfig);
mysqlPool.init(); // mysqlPool.init();
Connection conn = mysqlPool.getConn(); // Connection conn = mysqlPool.getConn();
//
DataValue[] dataValues = null; // DataValue[] dataValues = null;
//
try { // try {
PreparedStatement preparedStatement = conn.prepareStatement(sql); // PreparedStatement preparedStatement = conn.prepareStatement(sql);
ResultSet resultSet = preparedStatement.executeQuery(); // ResultSet resultSet = preparedStatement.executeQuery();
ResultSetMetaData metaData = resultSet.getMetaData(); // ResultSetMetaData metaData = resultSet.getMetaData();
int columnCount = metaData.getColumnCount(); // int columnCount = metaData.getColumnCount();
if (resultSet.next()){ // if (resultSet.next()){
for (int i = 1; i < columnCount; i++) { // for (int i = 1; i < columnCount; i++) {
if (resultSet.isFirst()){ // if (resultSet.isFirst()){
String columnTypeName = metaData.getColumnTypeName(i); // String columnTypeName = metaData.getColumnTypeName(i);
DatabaseMetaData metadataColumns = conn.getMetaData(); // DatabaseMetaData metadataColumns = conn.getMetaData();
ResultSet columns = metadataColumns.getColumns(null, null, metaData.getTableName(i), metaData.getColumnName(i)); // ResultSet columns = metadataColumns.getColumns(null, null, metaData.getTableName(i), metaData.getColumnName(i));
String remarks =null; // String remarks =null;
while (columns.next()){ // while (columns.next()){
remarks = columns.getString("REMARKS"); // remarks = columns.getString("REMARKS");
log.info("字段备注:"+remarks); // log.info("字段备注:"+remarks);
} // }
DataValue build = DataValue.builder() // DataValue build = DataValue.builder()
.key(metaData.getColumnName(i)) // .key(metaData.getColumnName(i))
.label(remarks) // .label(remarks)
.value(resultSet.getObject(i, DataType.convertType(columnTypeName))) // .value(resultSet.getObject(i, DataType.convertType(columnTypeName)))
.type(DataType.findBySqlType(columnTypeName)) // .type(DataType.findBySqlType(columnTypeName))
.build(); // .build();
map.put(i,build); // map.put(i,build);
dataValues[i-1]=build; // dataValues[i-1]=build;
} // }
} // }
} // }
//
//
} catch (SQLException e) { // } catch (SQLException e) {
throw new RuntimeException(e); // throw new RuntimeException(e);
} // }
return dataValues; return null;
} }
@Override @Override
@ -91,6 +89,7 @@ public class MySqlDataSource extends BaseDataAbsSource {
Long dataSourceId = query.getDataSourceId(); Long dataSourceId = query.getDataSourceId();
ConcurrentHashMap<Integer, DataValue> map = new ConcurrentHashMap<>(); ConcurrentHashMap<Integer, DataValue> map = new ConcurrentHashMap<>();
Source dataSources = sourceService.getById(dataSourceId); Source dataSources = sourceService.getById(dataSourceId);
HikariDataSource hikariDataSource = HikariPool.getHikariDataSource(dataSources); HikariDataSource hikariDataSource = HikariPool.getHikariDataSource(dataSources);
Connection conn = null; Connection conn = null;
@ -144,8 +143,15 @@ public class MySqlDataSource extends BaseDataAbsSource {
} }
} catch (SQLException e) { } catch (SQLException e) {
throw new RuntimeException(e); throw new RuntimeException(e);
}finally {
close(hikariDataSource);
} }
return dataValues; return dataValues;
} }
private static void close(HikariDataSource dataSource) {
if (dataSource != null) {
dataSource.close();
}
}
} }