記mybatis分頁開啟未關閉,資料丟失問題

2021-10-25 03:48:29 字數 1479 閱讀 7390

pagehelper.startpage();這個方法說的是我要開始分頁了哈,全部資料聽我號令,沒錯,這個東東就是幹這個的,並且還很挑位置,他就喜歡在最開始的位置,你放錯位置你的結果就不是你想要的了,我要說的重點是假如你確定要使用這個方法了,那就善始善終,用完它,不然的話,哼哼,你會發現你**裡所有的查詢方法都會出現問題,不管是有分頁還是沒分頁,都會出現資料要麼正常,要麼就少了,然後就和我一樣,還不知道**出問題了,心累

劃重點:在你使用pagehelper.startpage(),但是在執行完.startpage()後,沒有查詢資料庫操作,並且此次查詢請求響應結束,執行緒空閒時,又有新的別的查詢請求進來,此時執行緒復用,mybaits通過自身的***攔截,導致給新的查詢自動新增了limit?,?,從而報錯,沒錯就是這個問題,用我的話說就是,你既然選擇我了,就要對我有始有終,不然後果自負。

當然我們都是對待人和事物有始有終的好男兒,出現這種問題是因為想用人家mybaits的分頁功能,還要自己去實現,問題就出現了,想要自己去分頁,不使用pagehelper.startpage(),我們自己去分,我自己封裝了分頁工具類,拿去。

/**

* 分頁

** @param pagesize 當前頁面大小

* @param pageno 當前頁碼

* @param list 需要分頁的集合

* @param page

* @return

*/public

static list

>

sublistpager

(int pagesize,

int pageno, list list, pagebean page)

throws indexoutofbound***ception

else

page.

settotalpage

(totalpage)

;// 當前第幾頁資料

currentpage = totalpage < pageno ? pageno : totalpage;

// 起始索引

int fromindex = pagesize *

(currentpage -1)

;// 結束索引

int toindex = pagesize * currentpage > totalrecord ? totalrecord : pagesize * currentpage;

if(fromindex ==

0&& toindex ==0)

trycatch

(indexoutofbound***ception e)

return datalist;

}

mybatis實現分頁

邏輯分頁 1.1.業務控制層 public void selectdeptwithpage1 1.2 資料訪問層 select from t department and deptname like if where select 2.物理分頁 這種分頁是我們mysql資料庫支援的,其實也就是拼sq...

MyBatis分頁查詢

sqlsession物件的selectlist方法有個rowbounds引數,該引數可用於控制返回的記錄數量。使用 如下 資料抓取機制 是先將當前頁記錄以及前面所有記錄,以及後面一條記錄都抓取出來,然後再擷取當前頁記錄顯示。例如需要抓取顯示4 6條記錄時,實際獲取的是前6條記錄,外加第7條記錄。這種...

mybatis分頁外掛程式

其實吧,這個分頁的封裝是我從mybatis實戰上抄的,然後又重構了下 形成了自己的。現在之所以會記錄一下,主要原因是出現了質變 對foreach的支援,而解決這個問題的過程中,我感覺,應該基本上使用上沒有多少侷限行了。下面說說實際的吧。基本的設計思路,是使用mybatis外掛程式,首先是下面這一串註...