1)情况:JAVA中操作数据库,通过Connection获取Statement(其子接口:PreparedStatement或者CallableStatement)
操作数据。
2)关系:Wrapper-->Statement-->PreparedStatement-->CallableStatement
3)接口:Statement.getMoreResults()和Statement.getResultSet()
3.1)
接口说明:判断下一条sql中是否存在结果集(当执行的SQL为语句块时,有多条SQL结果集时使用),并跳到下一条结果集,
使Statement.getResultSet()能获取到下一条sql的结果。
代码:(这里用CallableStatement 为例子)
StringBuilder sql = new StringBuilder();
sql.append(" begin ");
sql.append(" select * from A ");
sql.append(" select * from B ");
sql.append(" end ");
Connection con = getLisConnection();
CallableStatement cstm = con.prepareCall(sql.toString());
//执行并获取结果集
cstm.execute();
ResultSet rs1 = cstm.getResultSet();
//判断是否有结果集,并且跳到下一个SQL结果集
cstm.getMoreResults();
//这句必须在cstm.getMoreResults()后执行,不然没法获取到下一条sql的结果,类似C中的指针
rs = cstm.getResultSet();
//对应结果集操作:略
//关闭资源
if(rs!=null){
rs.close();
}
if(cstm!=null){
cstm.close();
}
if(con!=null){
con.close();
}