本次项目插件集成在基础项目上进行修改
地址:基础项目
一、添加pom依赖
<!--版本-->
<pagehelper.version>5.0.4</pagehelper.version>
<!--pagehelper依赖-->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>${pagehelper.version}</version>
</dependency>
二、配置类配置
@Bean(name = "SqlSessionFactory")
public SqlSessionFactoryBean createSqlSessionFactoryBean() throws Exception {
SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
Resource[] resources = new PathMatchingResourcePatternResolver().getResources(MAPPERPATH);
sqlSessionFactoryBean.setMapperLocations(resources);
sqlSessionFactoryBean.setTypeAliasesPackage(entityPackage);
sqlSessionFactoryBean.setDataSource(dataSource);
//分页插件
Properties properties = new Properties();
//设置默认mysql
properties.setProperty("helperDialect","mysql");
//设置rowRound中offset不能当pageNum用
properties.setProperty("offsetAsPageNum","false");
//禁用自动统计
properties.setProperty("rowBoundsWithCount","false");
//查询默认如果有pageNum为0查询全部
properties.setProperty("pageSizeZero","false");
//支持通过mapper传递分页参数
properties.setProperty("supportMethodsArguments", "true");
//设置超出范围将返回null
properties.setProperty("reasonable", "false");
//配置参数映射
properties.setProperty("params", "count=countSql");
//自动获取数据库类型时,会自动获取一个数据库连接, 通过该属性来设置是否关闭获取的这个连接
properties.setProperty("closeConn","closeConn");
//控制返回结果可为null
properties.setProperty("returnPageInfo", "check");
//声明分页
PageInterceptor pageInterceptor = new PageInterceptor();
pageInterceptor.setProperties(properties);
// 引入插件
sqlSessionFactoryBean.setPlugins(new Interceptor[]{pageInterceptor});
return sqlSessionFactoryBean;
}
三、Service业务处理
@Override
public ResultEntry selectAll(Integer pageIndex, Integer pageSize) {
PageHelper.startPage(pageIndex, pageSize);
List<UserInfo> userInfoList = userInfoMapper.selectAll();
PageInfo pageInfo = new PageInfo(userInfoList);
ResultListEntry resultListEntry = new ResultListEntry();
resultListEntry.setDataList(pageInfo.getList());
resultListEntry.setTotalCount(pageInfo.getTotal());
resultListEntry.setPageNum(pageInfo.getPageNum());
resultListEntry.setPageSize(pageInfo.getPageSize());
return new ResultEntry().success(resultListEntry);
}
四、postman进行测试
注:json格式传入分页参数pageNum、pageSize