今天做Extjs分頁時,發現原來框架基於MSSQL的,打印處於舉發現爲利用select top 進行分頁,而在mysql中使用
select * from table limit ?,?.
在網上進行查詢這事Hibernate爲了實現統一分頁接口而在方言中進行封裝.Oracle中通過Rownum是實現。
個人認爲可以在MSSQl 2005以上版本利用
ROW_NUMBER()可進行“真分頁”。
再用uniqueResult做分頁統計是,注意結果集只能唯一,否則報錯,查看源碼後發現
static Object uniqueElement(List list) throws NonUniqueResultException {
int size = list.size();
if (size==0) return null;
Object first = list.get(0);
for ( int i=1; i<size; i++ ) {
if ( list.get(i)!=first ) {
throw new NonUniqueResultException( list.size() );
}
}
return first;
}
只要結果集不唯一則拋異常,但是結果集的數量以一定唯一,特此mark.