本文主要是介绍mybatis-puls分页查询,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
mybatis-plus分页查询的实现原理:
1、由分页拦截器PaginationInnerInterceptor拦截所有查询请求,在执行查询前判断参数中是否包含IPage类型的参数。
2、如果包含IPage类型的参数,则根据分页信息,重新组装成分页查询的SQL。
一,编写配置类
package com.demo.config;import com.baomidou.mybatisplus.extension.plugins.OptimisticLockerInterceptor;
import com.baomidou.mybatisplus.extension.plugins.pagination.optimize.JsqlParserCountOptimize;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.transaction.annotation.EnableTransactionManagement;
@MapperScan("com.demo.mapper")
//自动管理事务
@EnableTransactionManagement
@Configuration
//配置类
public class MyBatisPlusConfig {@Beanpublic OptimisticLockerInterceptor optimisticLockerInterceptor(){return new OptimisticLockerInterceptor();}//分页@Beanpublic MybatisPlusInterceptor mybatisPlusInterceptor() {MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));return interceptor;}
}
二,单月测试
执行时候会自动执行count(1)拿到所有字段条数
@Testvoid textPage(){//第一个参数为 当前页//第一个参数为 查询数量Page page = new Page(1,3);IPage iPage = mapper.selectPage(page, null);iPage.getRecords().forEach(System.out::println);}
Page类方法
getCurrent():获取当前页码。
setCurrent(long current):设置当前页码。
getSize():获取每页显示的记录数。
setSize(long size):设置每页显示的记录数。
getTotal():获取总记录数。
setTotal(long total):设置总记录数。
getPages():获取总页数。
setPages(long pages):设置总页数。
getRecords():获取当前页的记录列表。
setRecords(List<T> records):设置当前页的记录列表。
hasPrevious():判断是否有上一页。
hasNext():判断是否有下一页。
optimizeCountSql(boolean optimizeCountSql):是否优化 COUNT SQL。
optimizeCountSql(boolean optimizeCountSql, boolean isSearchCount):是否进行 count 查询。
searchCount(boolean isSearchCount):是否进行 count 查询。
isSearchCount():是否进行 count 查询。
setSearchCount(boolean isSearchCount):设置是否进行 count 查询。
这篇关于mybatis-puls分页查询的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!