Я пытаюсь получить предварительный просмотр (данные) таблицы, запрашивая с помощью jdb c DatabaseMetadata и ResultSet.
Приведенный ниже код прекрасно работает, если я запускаю его для базы данных MySQL и возвращает имя таблицы а также данные правильно, но он дает EMPTY tableName, если работает с базой данных Exasol. Мне нужна помощь, чтобы получить tableName для данного набора результатов.
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){}
В случае, если данные exasol также возвращаются, только имя таблицы получает как "". Любая помощь или подсказка, чтобы решить эту проблему, пожалуйста.