PageHelper
在网上找了一大圈,都不符合自己的业务
自己琢磨出来了
1. 导入Pom配置文件
我这里使用的5.0.0的版本
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.0.0</version>
</dependency>
2. 配置Mybatis的配置文件
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<!--Mapper文件路径-->
<property name="mapperLocations" value="classpath:mapper/*.xml"/>
<!--配置pagehelper-->
<property name="plugins">
<array>
<bean class="com.github.pagehelper.PageInterceptor">
<property name="properties">
<!--使用下面的方式配置参数,一行配置一个 -->
<value>
params=value1
supportMethodsArguments=true
</value>
</property>
</bean>
</array>
</property>
</bean>
3.分页类
分页类需要两个属性,一个是第几页,一个是每页显示多少条
这两个属性作为插件PageHelper类的形参
public class page {
private int offset;
private int limit;
}
4.调用插件分页类PageHelper
直接在Controller类中调用
//查询分页
@RequestMapping(value = "/getUsersPage", method = RequestMethod.POST)
public List<User> getUsersPageByEach(@RequestBody page page) {
//设置当前页和每页数量
PageHelper.startPage(page.getOffset(), page.getLimit());
//获取所有用户的List集合
List<User> userList = userService.getUserList(new User());
//将用户集合放进分页对象中
PageInfo<User> pageInfo = new PageInfo<>(userList);
//返回分页对象
return new ArrayList<>(pageInfo.getList());
}
把分页类page作为形参传入控制层的请求方法,在进行ajax请求时,把传入的参数封装成page类传入方法
PageHelper类有两个属性,一个是pageParams,一个是autoDialect
//控制层的方法返回值为List集合,把page类作为形参传入分页方法
public List
//把page类的属性赋值给PageHelper的两个属性
PageHelper.startPage(page.getOffset(), page.getLimit());
//查询所有获得一个list集合
List
//将集合放进pageInfo类中
PageInfo
//pageInfo类调用集合,放进List集合,作为方法返回值
return new ArrayList<>(pageInfo.getList());
5.ajax请求
let param = {};
//第几页,每页显示多少条
param.offset = 1;
param.limit = 3;
let url = "http://localhost:8081/test_war_exploded/getUsersPage";
let obj = ajaxUtils.ajaxPost1(url, param);
注意:我用的是封装方法,请求时要把请求数据param使用JSON.stringify()封装JSON.stringify(param)
6.返回的JSON实例
{
"address": "中国北京",
"email": "wu566448@163.com",
"id": 8,
"name": "admin",
"page": 0,
"pageSize": 0,
"phone": "10086111008",
"pwd": "123123"
}
**多了两个属性,返回值暂时不知道怎么设置**
评论区