我想找到一个简单的方法来处理存储过程/ 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后发现它们的行,它不会返回'List
我应该能够使用'hasNext()'和'getObject()'迭代ResultSet'? – 2013-04-22 14:42:39
你可以使用'while'循环与'next()'并且获得不同的行字段与不同的getter。 – 2013-04-22 14:44:35