作者wadechen (忙)
看板java
標題[問題] ResultSet問題
時間Wed Jun 22 16:50:20 2016
請教一下各位前輩
原本前人寫法如下
=========================================
if(false == rs.first()){
return null;
}
do{
//get info from resultset
}while(rs.next());
=========================================
這樣的取法造成有時候會遺失 query 的最後一個結果
我索性改成以下方式就不會出現這問題了.
=========================================
if(!rs.isBeforeFirst()) return null;
while(rs.next()){
//get info from rs
}
=========================================
想請教的是第一種寫法, 其實我看不太出來發生錯誤的原因是什麼?
希望各位可以為我解惑, 萬分感謝.
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.34.163.209
※ 文章網址: https://www.ptt.cc/bbs/java/M.1466585423.A.B90.html
※ 編輯: wadechen (1.34.163.209), 06/22/2016 16:51:32
→ Lordaeron: 為何判斷是否第一筆或未開始抓呢?一直next不就抓完了 06/22 16:58
→ pico2k: 原本的程式,只要回傳的筆數大於1,最後一筆永遠抓不到 06/22 17:45
→ wadechen: 但有時候最後一筆會正常出現 怪怪 06/22 17:49
→ pico2k: 如果在新增資料前,先執行查詢,查詢到的資料會漏新增那一筆 06/22 18:13
→ wadechen: 可是測試為讀取固定的資料椰 06/22 18:17
→ Lordaeron: 哪不就很正常, 你抓時, 資料又未進去, 當然就沒有啊 06/22 20:11
→ Lordaeron: 不然呢? 06/22 20:11
→ iFEELing: 新增資料"前"做查詢 能查到新增的資料不就見鬼了... 06/23 03:32
→ iFEELing: 比較好奇用 while(rs.next()){get} 會有什麼問題嗎 06/23 03:34