执行查询操作多结果集问题实例

需求:在执行存储过程或者在一个查询中提交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方法的应用,大家先知道有这么个东西存,详细的可以查看文档
作为程序员的你肯定懂的! 上面是我修改过的,主要是方便理解 当然可以是用存储过程实现更为优质

 

posted @ 2014-08-28 00:39  ClodThunder  阅读(362)  评论(0)    收藏  举报