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 分页内容请搜索自学编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持自学编程网!
- 本文固定链接: https://zxbcw.cn/post/219822/
- 转载请注明:必须在正文中标注并保留原文链接
- QQ群: PHP高手阵营官方总群(344148542)
- QQ群: Yii2.0开发(304864863)