Birden çok sonuç kümesi döndüren Stored Procedures/SQL ile başa çıkmak için kolay bir yol bulmaya çalışıyorum. SimpleJdbcOperations#queryForList()
yöntemini kullanıyorum, ancak bu yalnızca ilk sonuç kümesini List<Map<String, Object>>
olarak döndürecektir. Birden çok sonuç kümesi alabilmem gerekiyor, ideal olarak Collection
List<Map<String, Object>>
veya bir şey. Yazdığım program bir middleware bileşenidir, bu yüzden SQL'in ne olacağını veya sonuç kümesinin ne olduğunu bilmiyorum.JdbcTemplate çoklu sonuç kümeleri
execute(CallableStatementCreator csc, CallableStatementCallback<T> action)
dahil olmak üzere daha fazla yönteme erişmemi sağlayan JdbcOperations
sınıfını kullanmam gerektiğini düşünüyorum, ancak şimdi takılıyorum.
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;
}
};
benim jenerik List<Map<String, Object>>
s almak için ResultSet
ile ilgisi olsa yöntemini ya da ne nasıl kullanılacağını gerçekten emin değilim.
A [ 'ResultSet'] formunda (http://docs.oracle.com/javase/7/docs/api/java içinde ResultSet dair bir liste için bir yöntem aşağıda kullandık /sql/ResultSet.html), SQL'i doğrudan bir veritabanında yürüttükten sonra bulacağınız satırları içerir, hiç bir "Liste
“hasultSet” i, 'hasNext()' ve 'getObject()' kullanarak yineleyebilmeli miyim? –
“while” döngüsünü 'next()' ile kullanacak ve çeşitli alıcılarla farklı satır alanları elde edeceksiniz. –