修改查询语句
parent
a4802c09cd
commit
d1dce90cf8
|
@ -8,8 +8,6 @@ import com.muyu.data.base.BaseDataAbsSource;
|
|||
import com.muyu.domain.DataValue;
|
||||
import com.muyu.domain.Source;
|
||||
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 lombok.extern.log4j.Log4j2;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
@ -34,52 +32,52 @@ public class MySqlDataSource extends BaseDataAbsSource {
|
|||
|
||||
@Override
|
||||
public DataValue[] getRow () {
|
||||
MySqlQuery query = getQuery();
|
||||
String sql = query.getSql();
|
||||
Long dataSourceId = query.getDataSourceId();
|
||||
ConcurrentHashMap<Integer, DataValue> map = new ConcurrentHashMap<>();
|
||||
Source dataSources = sourceService.getById(dataSourceId);
|
||||
MysqlPoolConfig mysqlPoolConfig = Source.getMysqlPoolConfig(dataSources);
|
||||
|
||||
MysqlPool mysqlPool = new MysqlPool(mysqlPoolConfig);
|
||||
mysqlPool.init();
|
||||
Connection conn = mysqlPool.getConn();
|
||||
|
||||
DataValue[] dataValues = null;
|
||||
|
||||
try {
|
||||
PreparedStatement preparedStatement = conn.prepareStatement(sql);
|
||||
ResultSet resultSet = preparedStatement.executeQuery();
|
||||
ResultSetMetaData metaData = resultSet.getMetaData();
|
||||
int columnCount = metaData.getColumnCount();
|
||||
if (resultSet.next()){
|
||||
for (int i = 1; i < columnCount; i++) {
|
||||
if (resultSet.isFirst()){
|
||||
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");
|
||||
log.info("字段备注:"+remarks);
|
||||
}
|
||||
DataValue build = DataValue.builder()
|
||||
.key(metaData.getColumnName(i))
|
||||
.label(remarks)
|
||||
.value(resultSet.getObject(i, DataType.convertType(columnTypeName)))
|
||||
.type(DataType.findBySqlType(columnTypeName))
|
||||
.build();
|
||||
map.put(i,build);
|
||||
dataValues[i-1]=build;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
} catch (SQLException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
return dataValues;
|
||||
// MySqlQuery query = getQuery();
|
||||
// String sql = query.getSql();
|
||||
// Long dataSourceId = query.getDataSourceId();
|
||||
// ConcurrentHashMap<Integer, DataValue> map = new ConcurrentHashMap<>();
|
||||
// Source dataSources = sourceService.getById(dataSourceId);
|
||||
// MysqlPoolConfig mysqlPoolConfig = Source.getMysqlPoolConfig(dataSources);
|
||||
//
|
||||
// MysqlPool mysqlPool = new MysqlPool(mysqlPoolConfig);
|
||||
// mysqlPool.init();
|
||||
// Connection conn = mysqlPool.getConn();
|
||||
//
|
||||
// DataValue[] dataValues = null;
|
||||
//
|
||||
// try {
|
||||
// PreparedStatement preparedStatement = conn.prepareStatement(sql);
|
||||
// ResultSet resultSet = preparedStatement.executeQuery();
|
||||
// ResultSetMetaData metaData = resultSet.getMetaData();
|
||||
// int columnCount = metaData.getColumnCount();
|
||||
// if (resultSet.next()){
|
||||
// for (int i = 1; i < columnCount; i++) {
|
||||
// if (resultSet.isFirst()){
|
||||
// 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");
|
||||
// log.info("字段备注:"+remarks);
|
||||
// }
|
||||
// DataValue build = DataValue.builder()
|
||||
// .key(metaData.getColumnName(i))
|
||||
// .label(remarks)
|
||||
// .value(resultSet.getObject(i, DataType.convertType(columnTypeName)))
|
||||
// .type(DataType.findBySqlType(columnTypeName))
|
||||
// .build();
|
||||
// map.put(i,build);
|
||||
// dataValues[i-1]=build;
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
//
|
||||
//
|
||||
// } catch (SQLException e) {
|
||||
// throw new RuntimeException(e);
|
||||
// }
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -91,6 +89,7 @@ public class MySqlDataSource extends BaseDataAbsSource {
|
|||
Long dataSourceId = query.getDataSourceId();
|
||||
ConcurrentHashMap<Integer, DataValue> map = new ConcurrentHashMap<>();
|
||||
Source dataSources = sourceService.getById(dataSourceId);
|
||||
|
||||
HikariDataSource hikariDataSource = HikariPool.getHikariDataSource(dataSources);
|
||||
|
||||
Connection conn = null;
|
||||
|
@ -144,8 +143,15 @@ public class MySqlDataSource extends BaseDataAbsSource {
|
|||
}
|
||||
} catch (SQLException e) {
|
||||
throw new RuntimeException(e);
|
||||
}finally {
|
||||
close(hikariDataSource);
|
||||
}
|
||||
|
||||
return dataValues;
|
||||
}
|
||||
private static void close(HikariDataSource dataSource) {
|
||||
if (dataSource != null) {
|
||||
dataSource.close();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue