I am trying to get Preview(data) of a table by querying using jdbc DatabaseMetadata and ResultSet.
Below code works perfectly fine if I run it against MySQL database and returns table name as well as data correctly, but it gives EMPTY tableName if ran against Exasol database. I need help to get tableName for given resultset.
Preview preview = new Preview();
List<Map<String, String>> headers = new ArrayList();
List<Map<String, String>> data = new ArrayList();
HashMap<String, String> resultMap = new HashMap();
PreparedStatement ps = null;
ResultSet rs = null;
try{
ps = con.prepareStatement(query);
rs = ps.executeQuery();
ResultSetMetaData rsmd = rs.getMetaData();
int columnCount = rsmd.getColumnCount();
while(rs.next()) {
HashMap<String, String> columns = new HashMap();
Map<String, String> dataMap = new HashMap();
headers.clear();
for(int i = 1; i <= columnCount; ++i) {
Map<String, String> headersMap = new HashMap();
String name = rsmd.getColumnLabel(i);
preview.setName(rsmd.getTableName(i));
headersMap.put("id", name);
headersMap.put("name", name);
headersMap.put("dataType", (Object)null);
dataMap.put(name, rs.getObject(name) != null ? rs.getObject(name).toString() : null);
columns.put(name, rs.getObject(name) != null ? rs.getObject(name).toString() : null);
headers.add(headersMap);
}
data.add(dataMap);
}
}catch(Exception e){}
In case of exasol data is also getting returned only table name is getting as "". Any help or clue to solve this problem pls.