Я пытаюсь найти простой способ справиться с хранимыми процедурами/SQL, возвращающими несколько наборов результатов. Я использовал метод SimpleJdbcOperations#queryForList()
, но это вернет только первый набор результатов как List<Map<String, Object>>
. Мне нужно иметь возможность получить несколько наборов результатов, в идеале, как Collection
List<Map<String, Object>>
или что-то в этом роде. Программа, которую я пишу, представляет собой компонент промежуточного программного обеспечения, поэтому я не знаю, что такое SQL, или форма набора результатов.JdbcTemplate несколько наборов результатов
Я думаю, что я должен использовать класс JdbcOperations
, который дает мне доступ к большему количеству методов, включая execute(CallableStatementCreator csc, CallableStatementCallback<T> action)
, но теперь я застрял.
CallableStatementCallback<T> callback = new CallableStatementCallback<T>() {
@Override
public T doInCallableStatement(CallableStatement cs) throws SQLException, DataAccessException
{
boolean results = cs.execute(request);
while(results)
{
ResultSet result = cs.getResultSet();
results = cs.getMoreResults();
}
return null;
}
};
Я не совсем уверен, как использовать метод, хотя, или что делать с ResultSet
, чтобы мои общие List<Map<String, Object>>
с.
A [ 'ResultSet'] (http://docs.oracle.com/javase/7/docs/api/java /sql/ResultSet.html) содержит строки, которые вы могли бы найти после выполнения SQL непосредственно в базе данных, он никогда не вернет «Список
Я должен иметь возможность выполнять итерацию 'ResultSet' с помощью' hasNext() 'и' getObject() '? –
Вы должны использовать цикл while в 'next()' и получать разные поля строк с различными геттерами. –