問題 PageHelper自動新增limit

2021-09-25 03:38:38 字數 2341 閱讀 1984

1)、統計總數,(將sql語句變為 select count(0) from ***,只對簡單sql語句其效果,複雜sql語句需要自己寫)

page<?> page = pagehelper.startpage(1,-1);

long count = page.gettotal();

2)、分頁,pagenum - 第n頁, pagesize - 每頁m條數

a、只分頁不統計(每次只執行分頁語句)

pagehelper.startpage([pagenum],[pagesize]);

list<?> pagelist = queryforlist( ***.class, "queryall" , param);

//pagelist就是分頁之後的結果

b、分頁並統計(每次執行2條語句,一條select count語句,一條分頁語句)適用於查詢分頁時資料發生變動,需要將實時的變動資訊反映到分頁結果上

page<?> page = pagehelper.startpage([pagenum],[pagesize],[iscount]);

list<?> pagelist = queryforlist( ***.class , "queryall" , param);

long count = page.gettotal();

//也可以 list<?> pagelist = page.getlist(); 獲取分頁後的結果集

3)、使用pagehelper查全部(不分頁)

pagehelper.startpage(1,0);

list<?> alllist = queryforlist( ***.class , "queryall" , param);

4)、pagehelper的其他api

string orderby = pagehelper.getorderby(); //獲取orderby語句

page<?> page = pagehelper.startpage(object params);

page<?> page = pagehelper.startpage(int pagenum, int pagesize);

page<?> page = pagehelper.startpage(int pagenum, int pagesize, boolean iscount);

page<?> page = pagehelper.startpage(pagenum, pagesize, orderby);

page<?> page = pagehelper.startpage(pagenum, pagesize, iscount, isreasonable); //isreasonable分頁合理化,null時用預設配置

page<?> page = pagehelper.startpage(pagenum, pagesize, iscount, isreasonable, ispagesizezero); //ispagesizezero是否支援pagesize為0,true且pagesize=0時返回全部結果,false時分頁,null時用預設配置

pagehelper 方法使用了靜態的 threadlocal 引數,分頁引數和執行緒是繫結的。

只要你可以保證在 pagehelper 方法呼叫後緊跟 mybatis 查詢方法,這就是安全的。因為 pagehelper 在 finally **段中自動清除了 threadlocal 儲存的物件。

但是如果你寫出下面這樣的**,就是不安全的用法:

pagehelper.startpage(1, 10);

listlist;

if(param1 != null) else

這種情況下由於 param1 存在 null 的情況,就會導致 pagehelper 生產了乙個分頁引數,但是沒有被消費,這個引數就會一直保留在這個執行緒上。當這個執行緒再次被使用時,就可能導致不該分頁的方法去消費這個分頁引數,這就產生了莫名其妙的分頁。

上面這個**,應該寫成下面這個樣子:

listlist;

if(param1 != null) else

這種寫法就能保證安全。

如果你對此不放心,你可以手動清理 threadlocal 儲存的分頁引數,可以像下面這樣使用:

listlist;

if(param1 != null) finally

} else

這麼寫很不好看,而且沒有必要。

參考**;

mybatis分頁外掛程式pagehelper簡單使用

pagehelper介紹

pagehelper自動增加limit分頁問題

PageHelper的自動新增分頁的問題

如果vo裡有pagenum和pagesize 再加上配置檔案裡supportmethodsarguments true,那麼即使不使用pagehelper.startpage pagenum,pagesize 也會自動分頁。問題就在supportmethodsarguments這個引數,預設是fal...

PageHelper自動增加limit分頁

問題 使用pagehelperi分頁,報錯如下 caused by com.alibaba.druid.sql.parser.parserexception syntax error,error in limi1 1 limit expect limit,actual limit limit 原始查...

使用PageHelper分頁的問題

今天遇到這樣個問題,利用pagehelper做分頁,結果查出來的pagesize和total一樣,這樣前端總會查到一頁,這與結果不符。原始碼如下 pagehelper.startpage pagenum,pagesize,true list studentscoreentities students...