Использую DBUtils.
Есть запрос на получение данных. Использую LEFT JOIN. В этом запросе есть, так сказать, называние колонки - u.id AS id, test.id AS tid и так далее.
Полученные данные я разбираю при помощи ResultSetMetaData:
while(rs.next()) {
JSONObject tmp= new JSONObject();
ResultSetMetaData meta = rs.getMetaData();
for(int i=0;i<meta.getColumnCount();i++) {
tmp.put(meta.getColumnName(i+1), rs.getObject(i+1));
}
data.put(rs.getInt("id"), site);
}
И проблема в том что если я использую AS - meta.getColumnName(i+1)возвращает не название колонки которую я присваиваю а его исходное, тобишь если u.id то так и будет u.id, а в самом ResultSet такой колонки нет, ибо она названа так как я её назвал.
Как быть?
РЕШЕНИЕ: в ResultSetMetaData есть два типа колонок - оригинальные и те которые присвоенные (если нет присвоения то они одинаковые).
Что бы получить не оригинальное имя нужно использовать getColumnLabel()
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости