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 分页内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Java8通过CompletableFuture实现异步回调
这篇文章主要介绍了Java8通过CompletableFuture实现异步回调,CompletableFuture是Java 8 中新增的一个类,它是对Future接口的扩展,下文关于其更多相关详细介绍需要的小伙伴可以参考一下2022-04-04启动 Eclipse 弹出 Failed to load the JNI shared library jvm.dll
这篇文章主要介绍了有时候,新电脑上回碰到打开Eclipse时,弹出提示“Failed to load the JNI shared library jvm.dll”错误,这里给大家分享解决方案2016-08-08Apache SkyWalking 修复TTL timer 失效bug详解
这篇文章主要为大家介绍了Apache SkyWalking 修复TTL timer 失效bug详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2022-09-09Java中的日期时间类实例详解(Date、Calendar、DateFormat)
在JDK1.0中,Date类是唯一的一个代表时间的类,但是由于Date类不便于实现国际化,所以从JDK1.1版本开始,推荐使用Calendar类进行时间和日期处理,这篇文章主要介绍了Java中的日期时间类详解(Date、Calendar、DateFormat),需要的朋友可以参考下2023-11-11RxJava2.x+ReTrofit2.x多线程下载文件的示例代码
本篇文章主要介绍了RxJava2.x+ReTrofit2.x多线程下载文件的示例代码,具有一定的参考价值,有兴趣的可以了解一下2017-09-09
最新评论