zoukankan      html  css  js  c++  java
  • 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();
    
    }
    

      

  • 相关阅读:
    Leetcode 238. Product of Array Except Self
    Leetcode 103. Binary Tree Zigzag Level Order Traversal
    Leetcode 290. Word Pattern
    Leetcode 205. Isomorphic Strings
    Leetcode 107. Binary Tree Level Order Traversal II
    Leetcode 102. Binary Tree Level Order Traversal
    三目运算符
    简单判断案例— 分支结构的应用
    用switch判断月份的练习
    java基本打印练习《我行我素购物系统》
  • 原文地址:https://www.cnblogs.com/ixenos/p/6294800.html
Copyright © 2011-2022 走看看