in src/main/java/com/uber/uberscriptquery/util/SqlUtils.java [93:125]
public static DataSetResult executeJdbcQuery(String jdbcUrl, String sql) {
logger.info(String.format("Querying jdbc data by sql: %s", sql));
loadJdbcDriverClass(jdbcUrl);
DataSetResult dataSetResult = new DataSetResult();
List<String> columnNames = new ArrayList<>();
List<List<Object>> rows = new ArrayList<>();
try (Connection con = DriverManager.getConnection(jdbcUrl)) {
logger.info("Running sql: " + sql);
try (Statement stmt = con.createStatement()) {
try (ResultSet resultSet = stmt.executeQuery(sql)) {
for (int i = 0; i < resultSet.getMetaData().getColumnCount(); i++) {
columnNames.add(resultSet.getMetaData().getColumnName(i + 1));
}
while (resultSet.next()) {
List<Object> values = new ArrayList<>();
for (int i = 0; i < resultSet.getMetaData().getColumnCount(); i++) {
Object value = resultSet.getObject(i + 1);
values.add(value);
}
rows.add(values);
}
logger.info("Finished sql: " + sql);
dataSetResult.setColumnNames(columnNames);
dataSetResult.setRows(rows);
return dataSetResult;
}
}
} catch (SQLException e) {
throw new RuntimeException(String.format("Failed to execute query sql: %s, %s", sql, e.getMessage()), e);
}
}