亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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)秀持久層框架,需要的朋友可以參考下

一. 簡(jiǎn)單分頁查詢——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. 基于注解的簡(jiǎn)單分頁查詢

【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é)果封裝對(duì)象
 */
@AllArgsConstructor
@NoArgsConstructor
@Data
public class PageResult implements Serializable{
    private Long total;//總記錄數(shù)
    private List rows;//當(dāng)前頁結(jié)果
}

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

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

// 分頁請(qǐng)求。
@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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 基于字符串常用API(詳解)

    基于字符串常用API(詳解)

    下面小編就為大家?guī)硪黄谧址S肁PI(詳解)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-06-06
  • Java?超詳細(xì)講解Spring?MVC異常處理機(jī)制

    Java?超詳細(xì)講解Spring?MVC異常處理機(jī)制

    Spring?MVC中提供了一個(gè)通用的異常處理機(jī)制,它提供了一個(gè)成熟、簡(jiǎn)潔并且清晰的異常處理方案。當(dāng)使用Spring?MVC開發(fā)Web應(yīng)用時(shí),利用這套現(xiàn)成的機(jī)制進(jìn)行異常處理也更加自然并且高效
    2022-04-04
  • Java上傳文件進(jìn)度條的實(shí)現(xiàn)方法(附demo源碼下載)

    Java上傳文件進(jìn)度條的實(shí)現(xiàn)方法(附demo源碼下載)

    這篇文章主要介紹了Java上傳文件進(jìn)度條的實(shí)現(xiàn)方法,可簡(jiǎn)單實(shí)現(xiàn)顯示文件上傳比特?cái)?shù)及進(jìn)度的功能,并附帶demo源碼供讀者下載參考,需要的朋友可以參考下
    2015-12-12
  • Java基于正則表達(dá)式實(shí)現(xiàn)xml文件的解析功能詳解

    Java基于正則表達(dá)式實(shí)現(xiàn)xml文件的解析功能詳解

    這篇文章主要介紹了Java基于正則表達(dá)式實(shí)現(xiàn)xml文件的解析功能,結(jié)合實(shí)例形式分析了java使用正則表達(dá)式針對(duì)xml文件節(jié)點(diǎn)的相關(guān)操作技巧,需要的朋友可以參考下
    2017-08-08
  • java學(xué)生信息管理系統(tǒng)源代碼

    java學(xué)生信息管理系統(tǒng)源代碼

    這篇文章主要為大家詳細(xì)介紹了java學(xué)生信息管理系統(tǒng)源代碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • Mybatis?大數(shù)據(jù)量批量寫優(yōu)化的案例詳解

    Mybatis?大數(shù)據(jù)量批量寫優(yōu)化的案例詳解

    這篇文章主要介紹了Mybatis?大數(shù)據(jù)量批量寫優(yōu)化的示例代碼,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-05-05
  • Mybatis Plus 大數(shù)據(jù)游標(biāo)分頁的實(shí)現(xiàn)

    Mybatis Plus 大數(shù)據(jù)游標(biāo)分頁的實(shí)現(xiàn)

    使用MyBatis Plus的游標(biāo)分頁,我們可以輕松應(yīng)對(duì)大數(shù)據(jù)量的場(chǎng)景,本文主要介紹了Mybatis Plus 大數(shù)據(jù)游標(biāo)分頁的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-07-07
  • Java中文件創(chuàng)建于寫入內(nèi)容的常見方法

    Java中文件創(chuàng)建于寫入內(nèi)容的常見方法

    在日常開發(fā)中,肯定離不開要和文件打交道,今天就簡(jiǎn)單羅列一下平時(shí)比較常用的創(chuàng)建文件并向文件中寫入數(shù)據(jù)的幾種方式,希望對(duì)大家有一定的幫助
    2023-10-10
  • ReentrantLock 非公平鎖實(shí)現(xiàn)原理詳解

    ReentrantLock 非公平鎖實(shí)現(xiàn)原理詳解

    這篇文章主要為大家介紹了ReentrantLock 非公平鎖實(shí)現(xiàn)原理詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • SpringBoot+vue實(shí)現(xiàn)登錄圖片驗(yàn)證碼功能

    SpringBoot+vue實(shí)現(xiàn)登錄圖片驗(yàn)證碼功能

    這篇文章主要給大家介紹一下如何SpringBoot+vue實(shí)現(xiàn)登錄圖片驗(yàn)證碼功能,文中有詳細(xì)的代碼示例,具有一定的參考價(jià)值,需要的朋友可以參考下
    2023-07-07

最新評(píng)論