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

iBATIS分頁實例中ObjectDataSource的應用淺析

編輯:關於JAVA

iBATIS分頁實例中ObjectDataSource的應用首先讓我們來看看屬性方面的特點,ObjectDataSource 控件內置了對分頁的支持。我們需要設置 ObjectDataSource 的 EnablePaging屬性,然後要設置SelectMethod、SelectCountMethod 、StartRowIndexParameterName和MaximumRowsParameterName 屬性。當 EnablePaging 屬性設置為 true 時,SelectParameters 集合包含兩個額外的參數,一個用於請求的第一行,另一個用於請求的行數。這兩個參數的名稱由StartRowIndexParameterName 和 MaximumRowsParameterName 屬性定義。SelectMethod應該返回從指定的索引處開始的請求的行數。因為數據可能不是按頁大小平均分割的,所以最後一頁可能包含較少的行。因此,請求的行數實際上是返回的最大行數。

上面提及的後四個屬性的含義很容易理解,簡單的說,我們要實現兩個方法,一個是返回總的記錄數(SelectCountMethod),一個則返回當前請求頁的記錄(SelectMethod),SelectMethod方法至少要包含兩個參數,以指定欲請求記錄的起始索引和欲返回的最大行數。

SelectCountMethod一般容易實現。而SelectMethod則比較麻煩,常見的解決方案是存儲過程,這樣的存儲過程通常與特定表緊密耦合,難以通用。

使用iBATIS時,我們通過ISqlMapper接口來訪問數據庫。其中的一個方法相當有用:

IList<T> QueryForList<T>(string statementName, object parameterObject, int skipResults, int maxResults);

前兩個參數作查詢之用,而後兩個參數則與ObjectDataSource的StartRowIndexParameterName 和 MaximumRowsParameterName 屬性的設計不謀而合!

這樣一來,我們就可以只關注查詢本身了,把分頁功能交由iBatis和ObjectDataSource來打理。最重要的是,這個方法相當通用,也不需對查詢語句作額外的處理。

我的測試數據為20萬條,翻頁所需時間在0.7秒左右,效果很不錯了,大家有興趣可以嘗試下。

iBATIS分頁實例中ObjectDataSource的應用就介紹到這裡,希望通過本文的介紹使你對iBATIS分頁實例中ObjectDataSource的應用有所更高的了解。

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