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

Mybatis實(shí)現(xiàn)分頁查詢的詳細(xì)流程

 更新時(shí)間:2023年08月21日 08:42:04   作者:章魚小丸子duduu  
這篇文章主要給大家介紹了關(guān)于Mybatis實(shí)現(xiàn)分頁查詢的詳細(xì)流程,MyBatis是支持普通SQL查詢,存儲(chǔ)過程和高級(jí)映射的優(yōu)秀持久層框架,需要的朋友可以參考下

一. 簡單分頁查詢——limit

使用select查詢時(shí),如果結(jié)果集數(shù)據(jù)量較大,一個(gè)頁面難以處理,就會(huì)采用分頁查詢。

分頁查詢,就是從結(jié)果集中拿出指定的第n頁到第m頁的數(shù)據(jù)來顯示。

// limit分頁公式 
// currentPage:當(dāng)前頁 
// pageSize:每頁記錄數(shù)
limit (currentPage-1) * pageSize,pageSize

// SQL語句
select * from student limit(currentPage-1)*pageSize,pageSize;

1. 基于注解的簡單分頁查詢

【Mapper接口】

@select("select * from student limit #{pageBegin},#{pageSize}")
List<Student> findByPage(@Param("pageBegin") Integer PageBegin,@Param("PageSize")Integer PageSize);

【Controller類·】

@GetMapping("/findByPage")
public List<Student> findByPage(Integer page,Integer pageSize){
    Integer pageBegin = (page-1) * pageSize;
    return StudentMapper.findByPage(pageBegin,pageSize);
}

二.基于mapper.xml的復(fù)雜分頁

1. 【定義Page類——封裝分頁結(jié)果】

/**
 * 分頁結(jié)果封裝對象
 */
@AllArgsConstructor
@NoArgsConstructor
@Data
public class PageResult implements Serializable{
    private Long total;//總記錄數(shù)
    private List rows;//當(dāng)前頁結(jié)果
}

2.【定義PageResult類——封裝查詢條件】

封裝查詢條件
 請求參數(shù)包括頁碼、每頁顯示記錄數(shù)、查詢條件。
 請求參數(shù)的json格式為:{currentPage:1,pageSize:10,queryString:''apesource''}

// 分頁請求。
@AllArgsConstructor
@NoArgsConstructor
@Data
public class QueryPageBean implements Serializable{
    private Integer currentPage;//當(dāng)前頁碼
    private Integer pageSize;//每頁記錄數(shù)
    private String queryString;//查詢條件
    public QueryPageBean(Integer currentPage, Integer pageSize) {
        this.currentPage = currentPage;
        this.pageSize = pageSize;
    }
}

3.【Dao層】

/*** 持久層Dao接口 */
@Mapper
public interface CheckGroupDao {
    public Page<CheckGroup> selectByCondition(String queryString);
}

4.【xxxMapper.xml映射文件】

<!--動(dòng)態(tài)查詢:分頁查詢-->
    <select id="selectByCondition" parameterType="string" resultType="com.apesource.graduation_project.pojo.CheckGroup">
        select * from t_checkgroup
        <if test="value != null and value.length > 0">
            where code = #{value} or name = #{value} or helpCode = #{value}
        </if>
    </select>

5.【Service層】

@Override
    public PageResult pageQuery(Integer currentPage, Integer pageSize, String queryString)                     {
        PageHelper.startPage(currentPage, pageSize);
        Page<CheckGroup> page = checkGroupDao.selectByCondition(queryString);
        return new PageResult(page.getTotal(), page.getResult());
    }

6. 【Controller層】

 //分頁查詢
    @PostMapping("/findPage")
    public PageResult findPage(@RequestBody QueryPageBean queryPageBean) {
        try {
            PageResult pageResult = checkGroupService.pageQuery(queryPageBean.getCurrentPage(),queryPageBean.getPageSize(),queryPageBean.getQueryString());
            return pageResult;
        } catch (Exception e) {
            return null;
        }
    }

總結(jié) 

到此這篇關(guān)于Mybatis實(shí)現(xiàn)分頁查詢的文章就介紹到這了,更多相關(guān)Mybatis分頁查詢內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java實(shí)現(xiàn)在Word指定位置插入分頁符

    Java實(shí)現(xiàn)在Word指定位置插入分頁符

    在Word插入分頁符可以在指定段落后插入,也可以在特定文本位置處插入。本文將以Java代碼來操作以上兩種文檔分頁需求,需要的可以參考一下
    2022-04-04
  • 解決@Validated對List對象驗(yàn)證失效問題

    解決@Validated對List對象驗(yàn)證失效問題

    文章指出@Validated注解無法驗(yàn)證List數(shù)組參數(shù),建議手動(dòng)逐項(xiàng)驗(yàn)證或封裝List為對象進(jìn)行驗(yàn)證,前者代碼冗余但直接,后者需調(diào)整JSON結(jié)構(gòu)但更簡潔,根據(jù)需求選擇方案,權(quán)衡靈活性與參數(shù)改造成本
    2025-09-09
  • 解析rainbond以應(yīng)用為中心的架構(gòu)設(shè)計(jì)原理

    解析rainbond以應(yīng)用為中心的架構(gòu)設(shè)計(jì)原理

    這篇文章主要為大家介紹了rainbond以應(yīng)用為中心的架構(gòu)設(shè)計(jì)實(shí)現(xiàn)及原理解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-02-02
  • SpringBoot結(jié)合SpringCloud的分布式系統(tǒng)搭建教程

    SpringBoot結(jié)合SpringCloud的分布式系統(tǒng)搭建教程

    本文介紹了如何使用SpringBoot和SpringCloud搭建一個(gè)分布式系統(tǒng),包括服務(wù)注冊與發(fā)現(xiàn)、配置中心、網(wǎng)關(guān)服務(wù)、負(fù)載均衡和斷路器等組件的使用,通過搭建和測試這個(gè)分布式系統(tǒng),技術(shù)人員可以深入理解微服務(wù)架構(gòu)的設(shè)計(jì)與實(shí)現(xiàn)
    2025-12-12
  • SpringMVC請求的路徑變量里面寫正則表達(dá)式的方法

    SpringMVC請求的路徑變量里面寫正則表達(dá)式的方法

    這篇文章主要介紹了SpringMVC請求的路徑變量里面寫正則表達(dá)式的相關(guān)知識(shí),本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-09-09
  • 6種Java創(chuàng)建對象的方式總結(jié)

    6種Java創(chuàng)建對象的方式總結(jié)

    在Java中,創(chuàng)建對象可以使用多種方式,本文將詳細(xì)介紹以下六種創(chuàng)建對象的方式,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起了解一下
    2023-04-04
  • spring關(guān)于組件的注入及獲取流程場景分析

    spring關(guān)于組件的注入及獲取流程場景分析

    這篇文章主要介紹了spring關(guān)于組件的注入及獲取流程場景分析,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2024-07-07
  • 深入了解Spring中最常用的11個(gè)擴(kuò)展點(diǎn)

    深入了解Spring中最常用的11個(gè)擴(kuò)展點(diǎn)

    我們一說到spring,可能第一個(gè)想到的是?IOC(控制反轉(zhuǎn))?和?AOP(面向切面編程)。除此之外,我們在使用spring的過程中,有沒有發(fā)現(xiàn)它的擴(kuò)展能力非常強(qiáng)。今天就來跟大家一起聊聊,在Spring中最常用的11個(gè)擴(kuò)展點(diǎn)
    2022-09-09
  • 關(guān)于Java應(yīng)用日志與Jaeger的trace關(guān)聯(lián)的問題

    關(guān)于Java應(yīng)用日志與Jaeger的trace關(guān)聯(lián)的問題

    這篇文章主要介紹了Java應(yīng)用日志如何與Jaeger的trace關(guān)聯(lián),通過jaeger發(fā)現(xiàn)這十次請求中有一次耗時(shí)特別長,想定位一下具體原因,感興趣的朋友跟隨小編一起看看吧
    2022-01-01
  • 一文詳解MQ消息丟失問題的5種解決方案

    一文詳解MQ消息丟失問題的5種解決方案

    有些小伙伴在工作中,一提到消息隊(duì)列就覺得很簡單,但真正遇到線上消息丟失時(shí),排查起來卻讓人抓狂,今天這篇文章,專門跟大家一起聊聊這個(gè)話題,希望對你會(huì)有所幫助
    2025-10-10

最新評(píng)論

黑山县| 明光市| 青岛市| 龙泉市| 特克斯县| 咸阳市| 建宁县| 桐柏县| 芜湖县| 鄄城县| 奉贤区| 保定市| 方山县| 定西市| 元阳县| 凭祥市| 冷水江市| 灌云县| 青海省| 北辰区| 简阳市| 祁东县| 北宁市| 福泉市| 苍南县| 成都市| 芜湖市| 文昌市| 屯留县| 大余县| 哈巴河县| 通化县| 许昌市| 眉山市| 伊春市| 云龙县| 宁波市| 平江县| 桂平市| 米脂县| 邳州市|