执行查询操作多结果集问题实例
需求:在执行存储过程或者在一个查询中提交2个以上的查询语句(select)的数据库时,一个查询操作会得到多个ResultSet.
获取步骤:
1.execute方法执行sql语句
2.获取第一个结果集或更新计数
3.重复调用getMoreResult方法从而移到下一个结果集
4.如果仅有一个结果集则完成操作
注释:如果由多个结果集构成的链表的下一项是结果集,execute和getMoreResultSets方法返回True
如果由多个结果集构成的链表的下一项不是更新计数,getUpdateCount返回-1
实例:
public void GetMoreResults(){ String sqlc=""; Statement state=conn.getConn(); boolean isResult=state.execute(sqlc);//判断是不是返回结果集 boolean done=false;//定义判断依据是否继续执行 while(!done){//!done==true if (isResult) { ResultSet rs=state.getResultSet(); //以下是对rs的操作,不同需求,代码不一,自己看情况 } else { int undateCount=state.getUpdateCount(); if (undateCount>=0) { //判断是否是更新计数 } else{ done=true;//说明下一项不是结果集,也不是更新计数所以不再继续循环执行 } if (!done) { isResult=state.getMoreResults(); } } } }
这个主要是Statement的getMoreResultSet方法 和 getUpdateCount方法的应用,大家先知道有这么个东西存,详细的可以查看文档
作为程序员的你肯定懂的! 上面是我修改过的,主要是方便理解 当然可以是用存储过程实现更为优质
                    
                
                
            
        
浙公网安备 33010602011771号