註冊 | 登入 | 全文檢索 | 排行榜 |
» JWorld@TW
» JDBC/SQL討論區
» Oracle
![]() ![]() |
![]() ![]() ![]() ![]() |
本主題所含的標籤 |
作者 | Re:實現 Oracle 上的分頁顯示 [Re:error21h] | ||
anthonychen
![]() 外線交給我 版主 ![]() 發文: 2033 積分: 8 ![]() |
![]() ![]() ![]() ![]() ![]() ![]() ![]() 補充一下,如果要使用 ResuleSet 的 previous() 這些前後移動 cursor 的功能,必須在建立Statement物件時給定 ResultSet.TYPE_SCROLL_SENSITIVE 或是 ResultSet.TYPE_SCROLL_INSENSITIVE 的參數 以 Java Tutorial 裡的範例程式為例:
![]() ![]() |
作者 | Re:實現 Oracle 上的分頁顯示 [Re:error21h] |
精靈
![]() ![]() ![]() ![]() ![]() ![]() 發文: 86 積分: 7 ![]() |
![]() ![]() ![]() ![]() ![]() ![]() ![]() 不過要小心一點,如果有 order by 的指令在,就不能用 ROWNUM<10 來作分頁,這是在作 Oracle 分頁最讓人頭疼的地方。 ![]() ![]() |
作者 | Re:實現 Oracle 上的分頁顯示 [Re:error21h] | ||
atriatri
![]() ![]() ![]() ![]() ![]() ![]() 發文: 110 積分: 0 ![]() |
![]() ![]() ![]() ![]() ![]() ![]() ![]() 這種是小問題吧? 這樣不就解決了,還可以order by
![]() ![]() |
作者 | Re:實現 Oracle 上的分頁顯示 [Re:atriatri] |
精靈
![]() ![]() ![]() ![]() ![]() ![]() 發文: 86 積分: 7 ![]() |
![]() ![]() ![]() ![]() ![]() ![]() ![]() 可是若照上述語法來作分頁,那效能並不好,我實際用 9I 測試,在資料筆數五千筆的主檔裡,連續執行數次來取平均執行速度,發現這樣寫法來作分頁,速度比直接 select ename, job, sal from emp order by empno 還慢。 我的說法正確嗎 ? (我自己不太有把握) ![]() ![]() |
作者 | Re:實現 Oracle 上的分頁顯示 [Re:error21h] |
sulo
![]() ![]() ![]() ![]() ![]() ![]() 發文: 4 積分: 0 ![]() |
![]() ![]() ![]() ![]() ![]() ![]() ![]() 這樣分頁行不? if (ResultSet.next()) { ResultSet.absolute(-1) int rowCount = ResultSet.getRow(); int totalpage =rowCount / per-page }; ![]() ![]() |
作者 | Re:實現 Oracle 上的分頁顯示 [Re:error21h] |
benny139
![]() ![]() ![]() ![]() ![]() ![]() 發文: 198 積分: 2 ![]() |
![]() ![]() ![]() ![]() ![]() ![]() ![]() 大大 但 rownum 只有 oracle 才有, 萬一有天更換DB, 那不就... 建議還是用 sulo 的方法卡好... ![]() ![]() |
作者 | Re:實現 Oracle 上的分頁顯示 [Re:error21h] | ||
kentyeh
![]() ![]() ![]() ![]() ![]() ![]() 發文: 648 積分: 6 ![]() |
![]() ![]() ![]() ![]() ![]() ![]() ![]() Oracle 分頁可以使用oracle.jdbc.rowset.OracleCachedRowSet(在ocrs12.jar內)
![]() ![]() |
作者 | Re:實現 Oracle 上的分頁顯示 [Re:error21h] | ||||||||
老陳
![]() ![]() ![]() ![]() ![]() ![]() 發文: 161 積分: 2 ![]() |
![]() ![]() ![]() ![]() ![]() ![]() ![]() error21h wrote: 上面那個SQL不對的原因應該是沒有加上=,只要改成以下的方式就可以了
這樣的話error21h兄提供的兩種方式都可以適用 ^^ 另外如果有order by的話要怎麼辦呢?我查過網路上的文章後,得到以下的解法
參考連結: http://blog.joycode.com/percyboy/archive/2004/09/14/33445.aspx 不過這些SQL最好能寫在外部設定檔裡面,這樣如果要切換成SQL Server的話只要改設定檔就好,不用改程式 ![]() ![]() 電腦是害人的工具,但是上帝卻可以藉著它行奇妙的大能 |
» JWorld@TW » JDBC/SQL討論區 » Oracle |
![]() ![]() ![]() ![]() |
![]() ![]() ![]() |