Использую 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()
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
В игре несколько цветных шариков появляются каждую секунду и исчезаютИгрок должен выбрать правильную последовательность
Есть готовый десктопный проект на Java, с GUI интерфейсомПроект был разработан в среде Intellij Idea