oracle數據庫 分頁問題
老師你好?傳入分頁條件的時候會出現問題
public?DataGrid?getMailInfoById(MailAddressee?addressee,?PageBean?pageBean)?{ ????pageBean?=?ComUtils.getPage(pageBean); ????Page<MailAddressee>?page?=?new?Page<>(pageBean.getOffset(),?pageBean.getLimit()); ????QueryWrapper<MailAddressee>?queryWrapper?=?new?QueryWrapper<>(); ????queryWrapper.eq("MAIL_ID",?addressee.getMailId()).eq("SEND_MAN",?addressee.getSendMan()); ????IPage<MailAddressee>?emailPage?=?mailAddresseeDao.selectPage(page,?queryWrapper); ????List<MailAddressee>?records?=?emailPage.getRecords(); ????return?ComUtils.getDg(records,?emailPage.getTotal()); }
?上邊的代碼執行時?sql?語句中分頁的條件為 0?和 10?但是實際上我傳入的是?offset = 1?和?limit = 10
==>? Preparing: SELECT * FROM ( SELECT TMP.*, ROWNUM ROW_ID FROM ( SELECT addrid,send_man,addressee,mail_id,sden_status FROM mail_addressee WHERE (MAIL_ID = ? AND SEND_MAN = ?) ) TMP WHERE ROWNUM <=?) WHERE ROW_ID > ??
==> Parameters: D89E07FC516045A7A7A3DDDD9086FE14(String),?test(String), 10(Long), 0(Long)
?第一頁可以獲取10條?這個沒問題? 但是一旦翻到第2頁sql語句會變成 傳入的分頁參數為 offset = 11 和?limit = 20
==>? Preparing: SELECT * FROM ( SELECT TMP.*, ROWNUM ROW_ID FROM ( SELECT addrid,send_man,addressee,mail_id,sden_status FROM mail_addressee WHERE (MAIL_ID = ? AND SEND_MAN = ?) ) TMP WHERE ROWNUM <=?) WHERE ROW_ID > ??
==> Parameters: D89E07FC516045A7A7A3DDDD9086FE14(String), test(String), 220(Long), 200(Long)
DEBUG跟隨查看在queryWrapper創建之后就會改變分頁插件的值? 請問老師這個怎么解決呢
2019-09-22
我感覺問題出現在你的PageBean對象上,MP的Page對象傳的兩個參數的意義,你可能搞錯了。他第一個參數的需要傳的是當前要查的頁的頁碼,不是偏移量。第二個參數傳的是每頁最多多少條。