程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 分頁簡介

分頁簡介

編輯:關於JAVA

基本上有兩種方法

1.使用可滾動記錄集的游標進行分頁

2.使用SQL語句,如top,limit等

----------------------

1.select10000條記錄,要取出第11條到20條記錄,

使用可滾動的ResultSet,滾動到第11條,然後依次取出10條就OK了,

這樣分頁都在數據庫服務器上進行,數據庫服務器壓力大,耗內存。

(修正這裡的錯誤,分頁在客戶端進行,在數據量大的時候這樣分頁是不可取的,建議使用SQL語句分頁,多謝各位的指正

不過該法最簡單,實施分頁時,只需給定三個參數,sql語句,page和page_size參數

定義一個可滾動的ResultSet稍微有點麻煩

Connectioncn=*******;
  stmt=cn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
                 ResultSet.CONCUR_READ_ONLY);
rs=stmt.executeQuery(sql);

這樣就可以使用

rs.absolute(pos)進行定位了,

其實如果使用forward-only的resultset也可以,只用rs.next()移動記錄集就可以了

2.使用SQL語句分頁,

以sql-server的top為例

selecttoppage_size*fromt_testwhereidnotin(selecttopSKIPidfromt_testorderbyid

desc)

orderbyiddesc

intskip=page_size*(page-1)

用這個方法分頁性能可能會好些,不過麻煩

3.如果使用ibatis,hibernate等,分頁已經內部實現了,設置一下就可以了,

其底層的代碼沒有具體看過,應該使用方法1,絕對不會使用方法2

(修正這裡的錯誤,ibatis,hibernate等使用的應該是sql語句分頁)

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved