MyBatis-Plus实现2种分页方法(QueryWrapper查询分页和SQL查询分页)
作者:旭东怪
本文主要介绍了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 分页内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
您可能感兴趣的文章:
- MybatisPlus使用Wrapper实现条件查询功能
- mybatis-plus自带QueryWrapper自定义sql实现复杂查询实例详解
- Mybatis-plus动态条件查询QueryWrapper的使用案例
- MyBatisPlus-QueryWrapper多条件查询及修改方式
- mybatisplus where QueryWrapper加括号嵌套查询方式
- mybatisplus如何在xml的连表查询中使用queryWrapper
- MybatisPlus使用queryWrapper如何实现复杂查询
- mybatis-plus QueryWrapper自定义查询条件的实现
- 详解MyBatis-Plus Wrapper条件构造器查询大全
- Mybatis Plus Wrapper查询某几列的方法实现