JavaEE JDBC ResultSet內外移動

來源:互聯網
上載者:User

標籤:預存程序   get   執行預存程序   迭代   返回   als   logs   退出   else   

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();}

  

 

JavaEE JDBC ResultSet內外移動

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.