zoukankan      html  css  js  c++  java
  • 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());
        }
    

    参考:分页插件

  • 相关阅读:
    git 提交代码冲突解决步骤
    侯小厨的最新技术探索
    Groovy学习笔记(总索引)
    Compilation failure 找不到org.apache.http.annotation.NotThreadSafe的类文件
    Grafana 曲线图报错“parse_exception: Encountered...”
    Vue底层学习6——节点编译与属性遍历
    thanks for everything
    spring data mongodb连接
    windows docker lookup registry-1.docker.io on 192.168.65.5:53: no such host.
    antd 表单的两种校验方式
  • 原文地址:https://www.cnblogs.com/seve/p/12294207.html
Copyright © 2011-2022 走看看