如何使用 MyBatis-Plus的分页功能, 请带示范案例
时间: 2024-06-09 07:10:23 浏览: 42
使用 MyBatis-Plus 的分页功能非常简单,只需要在查询条件中设置分页参数即可。以下是一个示例案例:
假设我们有一个 User 实体类,对应数据库中的 user 表,我们想要查询 user 表中年龄大于等于 18 岁的用户,并且按照 id 降序排列,每页显示 10 条记录,查询第 2 页的数据。
首先,在 UserMapper 接口中定义一个方法:
```java
public interface UserMapper extends BaseMapper<User> {
IPage<User> selectPageVo(Page<?> page, @Param("age") Integer age);
}
```
其中,Page<?> page 表示分页参数,@Param("age") Integer age 表示查询条件中的年龄参数。
然后,在 UserMapper.xml 文件中实现该方法:
```xml
<select id="selectPageVo" resultType="com.example.User">
select * from user
where age >= #{age}
order by id desc
</select>
```
最后,在 Service 层中调用该方法即可:
```java
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
@Override
public IPage<User> selectUserPage(Page<User> page, Integer age) {
return baseMapper.selectPageVo(page, age);
}
}
```
在 Controller 层中,我们可以根据前端传递过来的参数构造 Page 对象,并调用 selectUserPage 方法进行分页查询:
```java
@RestController
@RequestMapping("/users")
public class UserController {
@Autowired
private UserService userService;
@GetMapping
public IPage<User> selectUserPage(@RequestParam(defaultValue = "1") Integer pageNum,
@RequestParam(defaultValue = "10") Integer pageSize,
@RequestParam(required = false) Integer age) {
Page<User> page = new Page<>(pageNum, pageSize);
return userService.selectUserPage(page, age);
}
}
```
这样,我们就可以在浏览器中通过 http://localhost:8080/users?pageNum=2&pageSize=10&age=18 访问分页查询接口,并获取第 2 页的数据了。
阅读全文