苍南网站开发,闸北网站推广公司,中企动力邮箱企业版,文字生成网页链接大家好 , 我是苏麟 , 今天聊一聊分页功能 . Page分页构造器是mybatisplus包中的一个分页类 . Page分页 引入依赖 dependencygroupIdcom.baomidou/groupIdartifactIdmybatis-plus-boot-starter/artifactIdversion3.4.1/ver…大家好 , 我是苏麟 , 今天聊一聊分页功能 . Page分页构造器是mybatisplus包中的一个分页类 . Page分页 引入依赖 dependencygroupIdcom.baomidou/groupIdartifactIdmybatis-plus-boot-starter/artifactIdversion3.4.1/version/dependencydependencygroupIdcom.alibaba/groupIdartifactIddruid/artifactIdversion1.1.16/version/dependency 配置 /*** 配置MP的分页插件*/
Configuration
public class MybatisPlusConfig {Beanpublic MybatisPlusInterceptor mybatisPlusInterceptor(){MybatisPlusInterceptor mybatisPlusInterceptor new MybatisPlusInterceptor();mybatisPlusInterceptor.addInnerInterceptor(new PaginationInnerInterceptor());return mybatisPlusInterceptor;}
} 分页查询的实现 /*** 分页查询* param page* param pageSize* param name* return*/GetMapping(/page)public RPage page(RequestParam(required false, defaultValue 1) int page,RequestParam(required false, defaultValue 10) int pageSize,String name){log.info(page {},pageSize {},name {} ,page,pageSize,name);//构造分页构造器Page pageInfo new Page(page,pageSize);//构造条件构造器LambdaQueryWrapperEmployee queryWrapper new LambdaQueryWrapper();//添加过滤条件queryWrapper.like(StringUtils.isNotEmpty(name),Employee::getName,name);//添加排序条件queryWrapper.orderByDesc(Employee::getUpdateTime);//执行查询employeeService.page(pageInfo,queryWrapper);return R.success(pageInfo);} 无条件查询 GetMapping(/page)public RPage page(int page,int pageSize,String name){//构造分页构造器对象Page pageInfo new Page(page,pageSize);//执行分页查询dishService.page(pageInfo, null);return R.success(page);}PageHelper PageHelper官网 : MyBatis 分页插件 PageHelper 开始使用 引入依赖 !--Mybatis 中分页插件 pageHelper--dependencygroupIdcom.github.pagehelper/groupIdartifactIdpagehelper-spring-boot-starter/artifactIdversion1.4.6/version/dependency 在spring boot 配置
Spring Boot 引入 starter 后自动生效对分页插件进行配置时在 Spring Boot 对应的配置文件中配置 properties : pagehelper.propertyNamepropertyValue
pagehelper.reasonablefalse
pagehelper.defaultCounttrue yml : pagehelper:propertyName: propertyValuereasonable: falsedefaultCount: true # 分页插件默认参数支持 default-count 形式自定义扩展的参数必须大小写一致 准备一些数据 测试 Testvoid mybatisTest() {PageHelper.startPage(1,2);PageUser list (PageUser) userMapper.list();System.out.println(list);} 测试结果 分页插件还支持的几种方法(官方给出的方式) //第一种RowBounds方式的调用
ListUser list sqlSession.selectList(x.y.selectIf, null, new RowBounds(0, 10));//第二种Mapper接口方式的调用推荐这种使用方式。
PageHelper.startPage(1, 10);
ListUser list userMapper.selectIf(1);//第三种Mapper接口方式的调用推荐这种使用方式。
PageHelper.offsetPage(1, 10);
ListUser list userMapper.selectIf(1);//第四种参数方法调用
//存在以下 Mapper 接口方法你不需要在 xml 处理后两个参数
public interface CountryMapper {ListUser selectByPageNumSize(Param(user) User user,Param(pageNum) int pageNum,Param(pageSize) int pageSize);
}
//配置supportMethodsArgumentstrue
//在代码中直接调用
ListUser list userMapper.selectByPageNumSize(user, 1, 10);//第五种参数对象
//如果 pageNum 和 pageSize 存在于 User 对象中只要参数有值也会被分页
//有如下 User 对象
public class User {//其他fields//下面两个参数名和 params 配置的名字一致private Integer pageNum;private Integer pageSize;
}
//存在以下 Mapper 接口方法你不需要在 xml 处理后两个参数
public interface CountryMapper {ListUser selectByPageNumSize(User user);
}
//当 user 中的 pageNum! null pageSize! null 时会自动分页
ListUser list userMapper.selectByPageNumSize(user);//第六种ISelect 接口方式
//jdk6,7用法创建接口
PageUser page PageHelper.startPage(1, 10).doSelectPage(new ISelect() {Overridepublic void doSelect() {userMapper.selectGroupBy();}
});
//jdk8 lambda用法
PageUser page PageHelper.startPage(1, 10).doSelectPage(()- userMapper.selectGroupBy());//也可以直接返回PageInfo注意doSelectPageInfo方法和doSelectPage
pageInfo PageHelper.startPage(1, 10).doSelectPageInfo(new ISelect() {Overridepublic void doSelect() {userMapper.selectGroupBy();}
});
//对应的lambda用法
pageInfo PageHelper.startPage(1, 10).doSelectPageInfo(() - userMapper.selectGroupBy());//count查询返回一个查询语句的count数
long total PageHelper.count(new ISelect() {Overridepublic void doSelect() {userMapper.selectLike(user);}
});
//lambdatotalPageHelper.count(()-userMapper.selectLike(user));
更详细的请看官方文档 .
这期就到这里 , 下期见 !
拜拜 !