SpringBoot +Mybatis 的Mysql分頁(yè)實(shí)現(xiàn)

前言

每次寫(xiě)一個(gè)項(xiàng)目的時(shí)候,如果涉及到分頁(yè),總會(huì)感覺(jué)寫(xiě)起來(lái)不舒服,通常需要在xml 里面寫(xiě)分頁(yè)語(yǔ)句,還要寫(xiě)一個(gè)查詢總數(shù)的語(yǔ)句,這樣總感覺(jué)不是特別優(yōu)雅。現(xiàn)在在網(wǎng)上找了個(gè)Mybatis分頁(yè)插件,用著特別舒服,給大家介紹下。

PageHelper

作者是中國(guó)的一個(gè)的程序員,項(xiàng)目地址
https://git.oschina.net/free/Mybatis_PageHelper

使用方法

官網(wǎng)已經(jīng)有詳細(xì)的使用方法,這里簡(jiǎn)單介紹下如何整合SpringBoot+Mybatis.
其實(shí)很簡(jiǎn)單,他已經(jīng)有了springboot 的start包,完全零配置。
1.引入依賴

  <!--分頁(yè)-->
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper-spring-boot-starter</artifactId>
            <version>1.1.3</version>
        </dependency>

2.使用
在你需要分頁(yè)調(diào)用mapper方法時(shí)

PageHelper.offsetPage(1, 10);
List<Country> list = countryMapper.selectIf(1);

獲取總數(shù)total的方法

//count查詢,返回一個(gè)查詢語(yǔ)句的count數(shù)
long total = PageHelper.count(new ISelect() {
    @Override
    public void doSelect() {
        countryMapper.selectLike(country);
    }
});

個(gè)人感覺(jué)最簡(jiǎn)單優(yōu)雅的方式是直接使用java8的lamda表達(dá)式直接獲取一個(gè)完整的page對(duì)象,其中包括了 頁(yè)數(shù),條數(shù)等等詳細(xì)信息代碼如下

pageInfo = PageHelper.startPage(1, 10).doSelectPageInfo(() -> countryMapper.selectGroupBy());

返回值pageInfo大概是這樣的

{
        "endRow": 3,
        "firstPage": 1,
        "hasNextPage": true,
        "hasPreviousPage": false,
        "isFirstPage": false,
        "isLastPage": false,
        "lastPage": 2,
        "list": [
            //查詢到的結(jié)果集
        ],
        "navigateFirstPage": 1,
        "navigateLastPage": 2,
        "navigatePages": 8,
        "navigatepageNums": [
            1,
            2
        ],
        "nextPage": 1,
        "pageNum": 0,
        "pageSize": 3,
        "pages": 2,
        "prePage": 0,
        "size": 3,
        "startRow": 1,
        "total": 6
    }

可以看到是真的很簡(jiǎn)單和優(yōu)雅。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1. 簡(jiǎn)介 1.1 什么是 MyBatis ? MyBatis 是支持定制化 SQL、存儲(chǔ)過(guò)程以及高級(jí)映射的優(yōu)秀的...
    笨鳥(niǎo)慢飛閱讀 6,226評(píng)論 0 4
  • 官方文檔 簡(jiǎn)介 入門 XML配置 XML映射文件 動(dòng)態(tài)SQL Java API SQL語(yǔ)句構(gòu)建器 日志 一、 JD...
    拾壹北閱讀 3,648評(píng)論 0 52
  • 奶奶的小腳 踩著纖繩一樣的小路 來(lái)往了她的一生 她最后一次關(guān)上門 她也許厭倦了塵世的謊言 她也許 不再希望看到任何...
    島上君閱讀 135評(píng)論 0 0
  • 2015暑假8月2日00:50記,在今年剛封上的走廊里的小竹床睡了一個(gè)暑假。。。。。。 午夜的雨轉(zhuǎn)眼間就停了,大肚...
    洛處馨止落冬霜閱讀 314評(píng)論 0 0
  • 微組 1 離家的孩子 心中無(wú)掛牽 家鄉(xiāng)在哪里 遠(yuǎn)隔 千重嶺萬(wàn)重山 2 咫尺天涯 茫茫的路 塵封了 來(lái)時(shí)的記憶 3 ...
    向春光原創(chuàng)文學(xué)閱讀 185評(píng)論 0 4

友情鏈接更多精彩內(nèi)容