最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MybatisPlus實現(xiàn)分頁效果并解決錯誤問題:cant?found?IPage?for?args

 更新時間:2023年02月17日 09:40:05   作者:小花皮豬  
這篇文章主要介紹了MybatisPlus實現(xiàn)分頁效果并解決錯誤:cant?found?IPage?for?args,本文結(jié)合實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

前言

早就知道MybatisPlus對分頁進行了處理,但是一直沒有實戰(zhàn)用過,用的是自己封裝的一個分頁組件,雖不說麻煩吧,但是也不是特別簡單。

寫起來還是比較復雜,但是最近這個組件有了點小小的bug,我決定是時候放棄它了,毅然加入光榮的進化。

然后我就去摸索使用MybatisPlus封裝的分頁組件,不用不知道,一用嚇一跳。不得不說是真香?。」δ軓姶笄沂褂煤唵?/p>

吹了這么多,下面就簡單下如何使用MybatisPlus實現(xiàn)分頁效果

簡單說明

核心代碼其實就這幾行:

 Page<ProjectBiddVO> page = new Page<>(pageNo,pageSize);
 IPage<ProjectBiddVO> projectBiddVOS =  projectBiddService.queryListInfo(page,projectBiddvo);

Page就是根據(jù)當前頁數(shù)和顯示條數(shù)得到的一個結(jié)果集

在這里插入圖片描述

其中,IPage 是分頁的關(guān)鍵,將我們需要分頁的條件用Page處理,即可達到分頁效果。

可以看到有很多里面方法

在這里插入圖片描述

代碼實現(xiàn)

實現(xiàn)起來特別簡單,兩行代碼即可

兩個參數(shù)pageNo和pageSize,分別是limit的兩個參數(shù),對應(yīng)當前頁和每頁條數(shù)

下面是相關(guān)的代碼,供大家參考:

controller

這樣寫有一個問題,就是如果不傳pageNo和pageSize,會空指針報錯

在controller中前兩個參數(shù)是必傳的,一般后面那個參數(shù)是實體,然后將pageNo和pageSize轉(zhuǎn)換為IPage對象,后面只需要傳IPage參數(shù)和業(yè)務(wù)參數(shù)了,如果只寫實現(xiàn)分頁,只傳IPage就夠了。

 @ApiOperation(value = "招投標項目-自定義列表查詢", notes = "招投標項目-自定義列表查詢")
    @GetMapping(value = "/queryListInfo")
    public Result<?> queryListInfo(Integer pageNo,Integer pageSize,ProjectBiddVO projectBiddvo) {
        Page<ProjectBiddVO> page = new Page<>(pageNo,pageSize);
        IPage<ProjectBiddVO> projectBiddVOS =  projectBiddService.queryListInfo(page,projectBiddvo);
        return Result.OK(projectBiddVOS);
    }

接口測試:

在這里插入圖片描述

想要優(yōu)化這個問題,也很簡單,可以給這兩個參數(shù)默認值,防止空指針

也可以通過if判斷參數(shù)是否為空,是空的話賦值

這里我選擇前者,因為我覺得更簡單

 @ApiOperation(value = "招投標項目-自定義列表查詢", notes = "招投標項目-自定義列表查詢")
    @GetMapping(value = "/queryListInfo")
    public Result<?> queryListInfo(
            @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
            @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
            ProjectBiddVO projectBiddvo) {
        Page<ProjectBiddVO> page = new Page<>(pageNo,pageSize);
        IPage<ProjectBiddVO> projectBiddVOS =  projectBiddService.queryListInfo(page,projectBiddvo);
        return Result.OK(projectBiddVOS);
    }

再來運行一下吧,這次就算不傳參,也是不會報錯的

在這里插入圖片描述

不傳當前頁數(shù)默認就是指定的默認值嘍,傳的話就按照傳的值去分頁

通過日志可以發(fā)現(xiàn),其實也是先去count了一下總條數(shù),再進行分頁處理的

在這里插入圖片描述

service

  IPage<ProjectBiddVO> queryListInfo(Page<ProjectBiddVO> page, ProjectBiddVO projectBiddVO);

serviceImpl

public IPage<ProjectBiddVO> queryListInfo(Page<ProjectBiddVO> page, ProjectBiddVO projectBiddVO) {
   return projectBiddMapper.queryListInfo(page,projectBiddVO);
}

mapper(dao)

    IPage<ProjectBiddVO> queryListInfo(Page<ProjectBiddVO> page,@Param("projectBiddVO") ProjectBiddVO projectBiddVO);

mapper(dao).xml

關(guān)于xml文件,不用我們手動指定limit的條件了,改怎么寫就怎么寫就好,MybatisPlus會根據(jù)我們的sql查詢結(jié)果進行分頁處理

例如我寫的是:

  select
        id,
        province,
        city,
        county,
        concat(province,city,county) as area,
        business_code_dic,
        section_status_dic,
        project_bidd_code,
        project_bidd_name,
        deposit_amount,
        bidder,
        open_bidd_time,
        margins_End_time,
        del_flag,
        remark
        from
        esgs_project_bidd
        <where>
            del_flag = 0 and open_bidd_time &gt; now() and section_status_dic=0
            <if test="projectBiddVO.projectBiddName!=null and projectBiddVO.projectBiddName!=''">
                and project_bidd_name=#{projectBiddVO.projectBiddName}
            </if>
            <if test="projectBiddVO.projectBiddCode!=null and projectBiddVO.projectBiddCode!=''">
                and project_bidd_code=#{projectBiddVO.projectBiddCode}
            </if>
            <if test="projectBiddVO.bidder!=null and projectBiddVO.bidder!=''">
                and bidder=#{projectBiddVO.bidder}
            </if>
            <if test="projectBiddVO.openBiddStartTime != null and projectBiddVO.openBiddStartTime != ''">
                and open_bidd_time &gt; #{projectBiddVO.openBiddStartTime}
            </if>
            <if test="projectBiddVO.openBiddStopTime != null and projectBiddVO.openBiddStopTime != ''">
                and open_bidd_time &lt; #{projectBiddVO.openBiddStopTime}
            </if>
        </where>
        <if test="projectBiddVO.area!=null and projectBiddVO.area!=''">
            having area like concat(#{projectBiddVO.area}, '%')
        </if>
    </select>

解決報錯

如果遇到下面啊這個報錯信息:

com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: can’t found IPage for args!

在這里插入圖片描述

在這里插入圖片描述

出現(xiàn)這個錯誤大概率是因為:

我們想要使用分頁,且把返回值定義成了IPage ,但是沒有把page對象傳入到mapper中。且要把這個page放到第一個參數(shù)。

錯誤演示:

在這里插入圖片描述

正確演示:

在這里插入圖片描述

總結(jié)

到此這篇關(guān)于MybatisPlus實現(xiàn)分頁效果并解決錯誤:cant found IPage for args!的文章就介紹到這了,更多相關(guān)MybatisPlus實現(xiàn)分頁內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java17和springboot3.0使用shiro報ClassNotFoundException的解決

    Java17和springboot3.0使用shiro報ClassNotFoundException的解決

    本文主要介紹了Java17和springboot3.0使用shiro報ClassNotFoundException的解決,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-04-04
  • IntelliJ IDEA同步代碼時版本沖突而產(chǎn)生出的incoming partial文件問題的解決辦法

    IntelliJ IDEA同步代碼時版本沖突而產(chǎn)生出的incoming partial文件問題的解決辦法

    今天小編就為大家分享一篇關(guān)于IntelliJ IDEA同步代碼時版本沖突而產(chǎn)生出的incoming partial文件問題的解決辦法,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-10-10
  • java實現(xiàn)時鐘表盤

    java實現(xiàn)時鐘表盤

    這篇文章主要為大家詳細介紹了java實現(xiàn)時鐘表盤,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-09-09
  • dubbo 如何使用logback來輸出日志

    dubbo 如何使用logback來輸出日志

    這篇文章主要介紹了dubbo 如何使用logback來輸出日志的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • Java中List for循環(huán)的6種寫法總結(jié)(推薦)

    Java中List for循環(huán)的6種寫法總結(jié)(推薦)

    下面小編就為大家?guī)硪黄狫ava中List for循環(huán)的6種寫法總結(jié)(推薦)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-06-06
  • Springboot如何使用mybatis實現(xiàn)攔截SQL分頁

    Springboot如何使用mybatis實現(xiàn)攔截SQL分頁

    這篇文章主要介紹了Springboot使用mybatis實現(xiàn)攔截SQL分頁,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-06-06
  • java == 引發(fā)的線上異常詳解

    java == 引發(fā)的線上異常詳解

    這篇文章主要介紹了java == 引發(fā)的線上異常,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2021-09-09
  • 一篇文章帶你了解Java SpringBoot Nacos

    一篇文章帶你了解Java SpringBoot Nacos

    這篇文章主要介紹了SpringBoot使用Nacos配置中心的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-09-09
  • SpringCloud2020 bootstrap 配置文件失效的解決方法

    SpringCloud2020 bootstrap 配置文件失效的解決方法

    這篇文章主要介紹了SpringCloud2020 bootstrap 配置文件失效的解決方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-02-02
  • SpringBoot實現(xiàn)設(shè)置全局和局部時間格式化

    SpringBoot實現(xiàn)設(shè)置全局和局部時間格式化

    本文主要介紹了SpringBoot實現(xiàn)設(shè)置全局和局部時間格式化,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-01-01

最新評論

新乡市| 雅江县| 渭源县| 黑山县| 康平县| 临清市| 峨边| 正安县| 涿鹿县| 乌鲁木齐市| 武乡县| 怀来县| 岢岚县| 岗巴县| 玛多县| 永城市| 大荔县| 兴隆县| 江门市| 元谋县| 大冶市| 昂仁县| 金沙县| 佛山市| 揭阳市| 千阳县| 莱州市| 华宁县| 彰化市| 三河市| 读书| 邓州市| 高青县| 临安市| 波密县| 东莞市| 连山| 抚顺县| 青冈县| 紫云| 明星|