Как получить имя таблицы, используя Jdb c из ResultSetMetaData - PullRequest
1 голос
/ 04 марта 2020

Я пытаюсь получить предварительный просмотр (данные) таблицы, запрашивая с помощью 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 также возвращаются, только имя таблицы получает как "". Любая помощь или подсказка, чтобы решить эту проблему, пожалуйста.

...