MyBatis-Plus实现2种分页方法(QueryWrapper查询分页和SQL查询分页)

 更新时间:2021年08月17日 09:31:08   作者:旭东怪  
本文主要介绍了MyBatis-Plus实现2种分页方法,主要包括QueryWrapper查询分页和SQL查询分页,具有一定的参考价值,感兴趣的可以了解一下

 1 MyBatisPlusConfig

MyBatisPlus配置类。

package com.config;
 
import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.springframework.context.annotation.*;
 
/**
 * MyBatisPlus配置类
 */
@Configuration
public class MyBatisPlusConfig {
 
    /**
     * MyBatisPlus拦截器(用于分页)
     */
    @Bean
    public MybatisPlusInterceptor paginationInterceptor() {
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        //添加MySQL的分页拦截器
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
        return interceptor;
    }
}

2 UserPagination

 用户查询条件类。

package com.entity;
 
import lombok.Data;
 
/**
 * 查询条件
 */
@Data
public class UserPagination {
    /**
     * 当前页号
     */
    private int currentPage;
    /**
     * 每页显示条数
     */
    private int pageSize;
}

3 Mapper

3.1 UserMapper.java

package com.mapper;
 
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.entity.UserEntity;
import com.entity.UserPagination;
import org.apache.ibatis.annotations.Mapper;
 
/**
 * 用户信息dao层
 */
@Mapper
public interface UserMapper extends BaseMapper<UserEntity> {
    /**
     * 获取用户信息(SQL查询分页)
     *
     * @param page 分页条件
     * @return
     */
    Page<UserEntity> getUserListBySQLPage(Page<UserEntity> page);
}

3.2 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.mapper.UserMapper">
    <select id="getUserListBySQLPage" resultType="com.entity.UserEntity">
        SELECT *
        from users
    </select>
</mapper>

4 Service

4.1 UserService

package com.service;
 
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.entity.*;
 
 
public interface UserService extends IService<UserEntity> {
    /**
     * 获取用户信息(QueryWrapper查询分页)
     *
     * @param pagination 查询条件
     * @return
     */
    Page<UserEntity> getUserListByQueryWrapperPage(UserPagination pagination);
 
    /**
     * 获取用户信息(SQL查询分页)
     *
     * @param pagination 查询条件
     * @return
     */
    Page<UserEntity> getUserListBySQLPage(UserPagination pagination);
}

4.2 UserServiceImpl

package com.service.impl;
 
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.entity.*;
import com.mapper.UserMapper;
import com.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
 
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, UserEntity> implements UserService {
   @Autowired
   private UserMapper userMapper;
    /**
     * 获取用户信息(QueryWrapper查询分页)
     *
     * @param pagination 查询条件
     * @return
     */
    public Page<UserEntity> getUserListByQueryWrapperPage(UserPagination pagination) {
        QueryWrapper<UserEntity> queryWrapper = new QueryWrapper<>();
        Page<UserEntity> page = new Page<>(pagination.getCurrentPage(), pagination.getPageSize());
        return this.page(page, queryWrapper);
    }
 
    /**
     * 获取用户信息(SQL查询分页)
     *
     * @param pagination 查询条件
     * @return
     */
    @Override
    public Page<UserEntity> getUserListBySQLPage(UserPagination pagination) {
        Page<UserEntity> page = new Page<>(pagination.getCurrentPage(), pagination.getPageSize());
        return userMapper.getUserListBySQLPage(page);
    }
}

5 UserController

调试代码。

package com.controller;
 
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.entity.*;
import com.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
 
@RestController
public class UserController {
    @Autowired
    private UserService userService;
 
    /**
     * 获取用户信息(QueryWrapper查询分页)
     *
     * @return
     */
    @GetMapping("/getUserListByQueryWrapperPage")
    public Page<UserEntity> getUserListByQueryWrapperPage(UserPagination pagination) {
        return userService.getUserListByQueryWrapperPage(pagination);
    }
 
    /**
     * 获取用户信息(SQL查询分页)
     *
     * @return
     */
    @GetMapping("/getUserListBySQLPage")
    public Page<UserEntity> getUserListBySQLPage(UserPagination pagination) {
        return userService.getUserListBySQLPage(pagination);
    }
 
}

6 调试结果 

6.1 QueryWrapper查询分页

6.2 SQL查询分页 

 

 注:

更多MyBatis-Plus的配置请查看以下博客。

Spring Boot 配置MyBatis-Plus(实现查询、新增、更新、删除)

到此这篇关于MyBatis-Plus实现2种分页方法(QueryWrapper查询分页和SQL查询分页)的文章就介绍到这了,更多相关MyBatis-Plus 分页内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java访问者模式实现优雅的对象结构处理

    Java访问者模式实现优雅的对象结构处理

    Java访问者模式是一种行为型设计模式,它通过将数据结构和数据操作分离,实现对复杂对象结构的处理。它将数据结构中的每个元素都转换为访问者能够识别的形式,从而使得数据操作可以在不影响数据结构的前提下进行扩展和变化
    2023-04-04
  • IDEA中设置Tab健为4个空格的方法

    IDEA中设置Tab健为4个空格的方法

    这篇文章给大家介绍了代码缩进用空格还是Tab?(IDEA中设置Tab健为4个空格)的相关知识,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2021-03-03
  • springboot项目中配置redis详细的教程

    springboot项目中配置redis详细的教程

    Redis是一种高性能的键值存储数据库,而Spring Boot是一个简化了开发过程的Java框架,这篇文章主要给大家介绍了关于springboot项目中配置redis详细的教程,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-04-04
  • Java经验点滴:处理没有被捕获的异常

    Java经验点滴:处理没有被捕获的异常

    Java经验点滴:处理没有被捕获的异常...
    2006-12-12
  • Springboot源码 TargetSource解析

    Springboot源码 TargetSource解析

    这篇文章主要介绍了Springboot源码 TargetSource解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-08-08
  • 深入了解Spring中的FactoryBean

    深入了解Spring中的FactoryBean

    这篇文章主要介绍了深入了解Spring中的FactoryBean,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-09-09
  • 完整详解Java开发学习路线指南

    完整详解Java开发学习路线指南

    在本篇文章里小编给大家整理的是一篇关于Java开发学习路线以及期中的主要知识点内容,有兴趣的朋友么可以学习下。
    2022-11-11
  • SpringCloud LoadBalancerClient 负载均衡原理解析

    SpringCloud LoadBalancerClient 负载均衡原理解析

    LoadBalancerClient 是 SpringCloud 提供的一种负载均衡客户端,Ribbon 负载均衡组件内部也是集成了 LoadBalancerClient 来实现负载均衡,本文给大家深入解析 LoadBalancerClient 接口源码,感兴趣的朋友跟随小编一起看看吧
    2022-02-02
  • 利用keytools为tomcat 7配置ssl双向认证的方法

    利用keytools为tomcat 7配置ssl双向认证的方法

    双向认证和单向认证原理基本差不多,只是除了客户端需要认证服务端以外,增加了服务端对客户端的认证,下面这篇文章主要介绍了利用keytools为tomcat 7配置ssl双向认证的方法,需要的朋友可以借鉴,下面来一起看看吧。
    2017-02-02
  • Java面试题冲刺第十二天--数据库(2)

    Java面试题冲刺第十二天--数据库(2)

    这篇文章主要为大家分享了最有价值的三道数据库面试题,涵盖内容全面,包括数据结构和算法相关的题目、经典面试编程题等,感兴趣的小伙伴们可以参考一下
    2021-07-07

最新评论