diff --git a/cloud-etl-server/src/main/java/com/muyu/cloud/etl/mysql/MySqlDataSource.java b/cloud-etl-server/src/main/java/com/muyu/cloud/etl/mysql/MySqlDataSource.java index 348971f..41c1acb 100644 --- a/cloud-etl-server/src/main/java/com/muyu/cloud/etl/mysql/MySqlDataSource.java +++ b/cloud-etl-server/src/main/java/com/muyu/cloud/etl/mysql/MySqlDataSource.java @@ -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 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 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 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(); + } + } }