• JavaEE JDBC ResultSet内外移动


    ResultSet内外移动

    @author ixenos 

    内外移动指位置光标的移动


    内移动就是一个ResultSet得到后的那个光标!

    外移动就是多个ResultSet的迭代

    内移动


    一般的数据库都不允许单个查询提交多个SELECT语句,

    1.execute执行SQL语句后,返回一个结果集ResultSet,

    2.其中有个光标next在第一个元组之前(想象一下),调用hasNext就会判断光标下一个元组存不存在

    3.rs.next定位行(元组triple),rs.getXXX定位列(字段field)

    外移动


    在执行存储过程中、或某些允许单个查询提交多个SELECT语句的操作中,可能会返回多个结果集

    1.使用execute方法执行SQL语句,将获取第一个结果集或更新计数,

    2.重复调用getMoreResults方法,将移动ResultSets的光标到下一个结果集,

    3.当不存在更多的结果集或更新计数时,完成操作

    4.stat.getResultSet定位当前结果集,stat.getUpdateStatement更新计数,stat.getMoreResults定位下一个结果集

    boolean isResult = stat.execute(sql);
    
    Boolean done = false;
    
    while(!done){
    
          if(isResult){
    
               ResultSet result = stat.getResultSet();
    
               。。。
    
          }else{
    
               int updateCount = stat.getUpdateCount();
    
               //isResult是false,但count!=-1,说明存在SQL操作但不返回结果集
    
               if(updateCount >= 0){
    
                     。。。
    
               }else{
    
                     //count是-1时,说明getMoreResults没有结果集了,也没有别的SQL操作,此时退出
    
                     Done = true;
    
               }
    
          }
    
          if(!done)  isResult = stat.getMoreResults();
    
    }
    

      

  • 相关阅读:
    蓝桥杯省赛模拟:村庄建设、郊外植树。
    Andrew 算法(构造凸包)
    Codeforces Round #635 (Div. 2)(A, B, C, D)
    级边凸包构造法(extreme edge)
    极点的凸包构造算法(extreme point)
    Codeforces Round #633 (Div. 2)(A, B, C)
    凸包---graham scan算法 + 例题P2742
    Element-ui中ElScrollBar组件滚动条的使用
    HTTP:Web的基础
    HTTP报文
  • 原文地址:https://www.cnblogs.com/ixenos/p/6294800.html
Copyright © 2020-2023  润新知