介绍
本文将介绍如何使用 Spring Mybatis 分页插件,在 Spring 框架中实现数据库分页查询。开发者可以通过本文学习了解基本的分页插件使用方法。
前置条件
在开始使用分页插件之前,确保已正确配置了 Spring 和 Mybatis,并在项目中引入了分页插件及其依赖。
步骤一:基本使用方法
1.在 Mybatis 配置文件中添加分页插件:
<plugins>
<plugin interceptor="com.github.pagehelper.PageInterceptor">
<property name="dialect" value="mysql"/>
</plugin>
</plugins>
其中,com.github.pagehelper.PageInterceptor
为分页插件的拦截器,dialect
属性表示数据库类型,这里使用 MySQL。
2.在需要分页的查询方法上添加分页信息:
public List<User> selectUserList(int pageNo, int pageSize) {
PageHelper.startPage(pageNo, pageSize);
return userMapper.selectUserList();
}
这里使用 PageHelper.startPage
方法设置分页参数。第一个参数 pageNo
表示当前页码,第二个参数 pageSize
表示每页显示条数。
3.返回数据结果:
@ResponseBody
@RequestMapping("/userList")
public PageInfo<User> userList(@RequestParam(value = "pageNo", required = false, defaultValue = "1") int pageNo,
@RequestParam(value = "pageSize", required = false, defaultValue = "10") int pageSize) {
List<User> userList = userService.selectUserList(pageNo, pageSize);
PageInfo<User> pageInfo = new PageInfo<User>(userList);
return pageInfo;
}
使用 com.github.pagehelper.PageInfo
封装查询结果,便于前端展示分页信息。
步骤二:实战应用
为了更好的理解分页插件,我们可以通过两个实例进行应用。第一个实例主要是基于单表的简单分页查询,第二个实例则是基于多个表之间的复杂分页查询。
实例一:单表简单分页查询
假设有一个用户信息表 t_user
,包含字段 id
、name
、age
,现在需要在用户列表页面展示所有用户信息,每页显示 10 条记录。
1.在 UserMapper.xml
文件中添加查找用户信息的 SQL 语句:
<select id="selectUserList" resultMap="userMap">
select * from t_user
</select>
2.在 UserService
中添加分页查询方法:
public List<User> selectUserList(int pageNo, int pageSize) {
PageHelper.startPage(pageNo, pageSize);
return userMapper.selectUserList();
}
3.在 UserController
中添加控制方法:
@ResponseBody
@RequestMapping("/userList")
public PageInfo<User> userList(@RequestParam(value = "pageNo", required = false, defaultValue = "1") int pageNo,
@RequestParam(value = "pageSize", required = false, defaultValue = "10") int pageSize) {
List<User> userList = userService.selectUserList(pageNo, pageSize);
PageInfo<User> pageInfo = new PageInfo<User>(userList);
return pageInfo;
}
实例二:多表复杂分页查询
假设有两个表 t_order
和 t_user
,每个订单关联指定的用户,现在需要在订单列表页面中展示所有订单信息,每页显示 10 条记录。
1.在 OrderMapper.xml
文件中添加查找订单信息的 SQL 语句:
<select id="selectOrderList" resultMap="orderMap">
select o.*, u.name as userName
from t_order o
left join t_user u on u.id = o.user_id
</select>
2.在 OrderService
中添加分页查询方法:
public List<Order> selectOrderList(int pageNo, int pageSize) {
PageHelper.startPage(pageNo, pageSize);
return OrderMapper.selectOrderList();
}
3.在 OrderController
中添加控制方法:
@ResponseBody
@RequestMapping("/orderList")
public PageInfo<Order> orderList(@RequestParam(value = "pageNo", required = false, defaultValue = "1") int pageNo,
@RequestParam(value = "pageSize", required = false, defaultValue = "10") int pageSize) {
List<Order> orderList = orderService.selectOrderList(pageNo, pageSize);
PageInfo<Order> pageInfo = new PageInfo<Order>(orderList);
return pageInfo;
}
至此,我们已经成功的完成了分页插件的使用,并且应用于了两个不同的场景之中。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Spring Mybatis 分页插件使用教程 - Python技术站