对于查询试的存储过程,一般会返回一个结果集,这个时候,使用正常的查询操作即可得到结果集,可是,面对下面的一次返回多个结果集的过程,又该如何通过JDBC获取呢?
其实,只需要多加一步操作就可以了。
JDBC的PreparedStatement可以返回多个结果集,但是ResultSet一次却只能接受一个结果集,只需要再判断PreparedStatement对象的getMoreResults()是否为真,然后再获取一次结果集,即可得到第二、第三……个结果集。
代码实现如下(Sybase IQ版本):
ps = conn.prepareStatement(sql);
ps.getMoreResults();
rs = ps.executeQuery();
while(rs.next()){
System.out.println(rs.getString(1));
}
if(ps.getMoreResults()){
rs = ps.getResultSet();
}
while(rs.next()){
System.out.println(rs.getString(1));
}