Próbuję znaleźć prosty sposób na radzenie sobie ze Stored Procedures/SQL zwracających wiele zestawów wyników. Używałem metody SimpleJdbcOperations#queryForList()
, jednak zwróci to tylko pierwszy zestaw wyników jako List<Map<String, Object>>
. Muszę być w stanie uzyskać wiele zestawów wyników, najlepiej jako Collection
z List<Map<String, Object>>
lub coś podobnego. Program, który piszę, to komponent oprogramowania pośredniego, więc nie wiem, jaki będzie kod SQL lub forma zestawu wyników.JdbcTemplate wiele zestawów wyników
Myślę, że muszę używać klasy JdbcOperations
, która daje mi dostęp do większej liczby metod, w tym execute(CallableStatementCreator csc, CallableStatementCallback<T> action)
, ale teraz utknąłem.
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;
}
};
nie jestem pewien, jak użyć metody jednak, czy co zrobić z ResultSet
aby moje ogólne List<Map<String, Object>>
s.
A [ '] (http://docs.oracle.com/javase/7/docs/api/java ResultSet' /sql/ResultSet.html) zawiera wiersze, które można znaleźć po wykonaniu SQL bezpośrednio w bazie danych, nigdy nie zwróci listy "List
Powinienem móc iterować 'ResultSet' przy użyciu' hasNext() 'i' getObject() '? –
Powinieneś użyć pętli 'while' z' next() 'i uzyskać różne pola wierszy z różnymi procesami pobierającymi. –