MyBatis-Plus學習筆記(3):分頁查詢


依賴配置可參考:MyBatis-Plus學習筆記(1):環境搭建以及基本的CRUD操作

分頁配置

@Configuration
public class PlusConfig {
    @Bean
    public PaginationInterceptor paginationInterceptor() {
        PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
        // 開啟 count 的 join 優化,只針對部分 left join
        paginationInterceptor.setCountSqlParser(new JsqlParserCountOptimize(true));
        return paginationInterceptor;
    }
}

通用Mapper查詢分頁

	@Test
    public void testSelectPage(){
        //分頁對象,構造函數傳入當前頁數和每頁條數
        Page selectPage = new Page<User>(1, 10);
        //是否查詢總條數,默認為true,也可以通過構造函數傳入
        //selectPage.setSearchCount(false);

        //封裝查詢條件
        Wrapper wrapper = new QueryWrapper<User>().gt("id", 0).orderByDesc("id");

        //調用通用Mapper
        Page<User> resultPage = userMapper.selectPage(selectPage, wrapper);

        System.out.println("總條數:" + resultPage.getTotal());
        System.out.println("列表:" + resultPage.getRecords());

        //true,返回的對象和查詢時傳入的對象是同一個對象
        System.out.println(selectPage.equals(resultPage));
    }

自定義Mapper查詢分頁

UserMapper.java:

package com.cf.plusdm.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.cf.plusdm.entity.User;

public interface UserMapper extends BaseMapper<User> {
    IPage<User> getUserList(Page<User> page);
}

UserMapper.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.cf.plusdm.mapper.UserMapper">

    <!-- 通用查詢映射結果 -->
    <resultMap id="BaseResultMap" type="com.cf.plusdm.entity.User">
        <id column="id" property="id" />
        <result column="real_name" property="realName" />
        <result column="email" property="email" />
        <result column="phone" property="phone" />
    </resultMap>

    <!-- 通用查詢結果列 -->
    <sql id="Base_Column_List">
        id, real_name, email, phone
    </sql>

    <select id="getUserList" resultMap="BaseResultMap">
        SELECT
        <include refid="Base_Column_List"></include>
        FROM tb_user
    </select>

</mapper>

使用:

	@Test
    public void testSelectPageXml(){
        Page resultPage = new Page<User>(1, 10);
        userMapper.getUserList(resultPage);

        System.out.println("總條數:" + resultPage.getTotal());
        System.out.println("列表:" + resultPage.getRecords());
    }

參考:分頁插件


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM