Вы не можете получить результат в виде списка типа table1. Таблица представляет собой набор столбцов. Java Список может содержать только коллекцию из одного столбца. Представьте, что table1
содержит 5 столбцов разных типов данных (например, INTEGER, VARCHAR2, INTEGER, VARCHAR2, VARCHAR2). Ваш запрос вернет ResultSet
, содержащий все эти значения. Теперь вы ожидаете, что простой список будет хранить все эти значения. Это не правильно. Если вы хотите сохранить все значения определенного столбца, вы можете сделать это, как показано ниже.
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM table1 WHERE attribute1 IN (SELECT attribute1 FROM table2 WHERE attribute2 = c)");
List<String> attr = new ArrayList<String>();
while (rs.next()) {
attr.add(rs.getString("attribute1"));
}
Если вы хотите sh получить значения другого столбца, тогда используйте rs.getXXX("<column_name");
для извлечения его детали. Примечание. Замените getXXX на соответствующий метод, основанный на типе данных столбца. Например, getString () для VARCHAR, getInt () для INTEGER et c.