Получение полного имени столбца из объекта метаданных jdbc - PullRequest
0 голосов
/ 15 декабря 2011

Я обрабатываю набор результатов, в котором количество возвращаемых столбцов меняется, и поэтому мне нужно знать, какие столбцы присутствуют.Я обнаружил, что могу извлечь имена возвращаемых столбцов следующим образом:

ResultSetMetaData meta = rs.getMetaData();
ArrayList<String> columns = new ArrayList<String>();
for (int i = 0; i < meta.getColumnCount(); i++) {
    columns.add(meta.getColumnLabel(i+1));
}

Это, однако, не дает мне полного имени столбца, определенного в моем SQL.Т.е.

select events.id, events.name from events;

отображается как "id, name", а не как "events.id, events.name", что очень плохо при объединении таблиц и желании различаться по возвращаемым именам столбцов.

Ответы [ 2 ]

2 голосов
/ 15 декабря 2011

Ответ таков: вы не можете получить псевдоним таблицы из оператора select.Тем не менее, вы можете получить имя базовой таблицы столбца, поэтому вы можете получить его, используя getTable (int) из ResultSetMetaData, поскольку вы не используете псевдонимы таблиц, а используете фактические таблицы.

2 голосов
/ 15 декабря 2011

Вы должны указать псевдоним при объединении таблиц. Есть два метода - getColumnName() - возвращает имя столбца и getColumnLabel() - возвращает метку столбца (псевдоним). Если псевдоним не указан, то getColumnLabel() возвращает то же значение, что и значение, возвращаемое getColumnName().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...