springboot整合mybatis使用limit实现分页
时间: 2024-09-16 18:03:17 浏览: 58
在Spring Boot项目中整合MyBatis进行分页操作,通常会使用`LIMIT`关键字配合MyBatis的动态SQL功能来实现。首先,你需要在Mapper接口中定义一个带有限制条件的查询方法,如下:
```java
public interface UserMapper {
@Select("SELECT * FROM users LIMIT #{offset}, #{limit}")
List<User> getUsers(int offset, int limit);
}
```
这里,`offset`表示起始位置,`limit`表示每页显示的数量。然后,在Service层,你可以注入Mapper,并通过`Pageable`对象封装分页参数,如下:
```java
@Autowired
private UserMapper userMapper;
public Page<User> getUsers(Pageable pageable) {
return userMapper.getUsers(pageable.getOffset(), pageable.getPageSize());
}
```
在Controller层,你可以使用`spring-data-web`提供的`PageRequest`类创建请求,例如:
```java
@GetMapping("/users")
public RestResponse pagination(@RequestParam(defaultValue = "0") int pageNum,
@RequestParam(defaultValue = "10") int pageSize) {
Pageable pageable = PageRequest.of(pageNum, pageSize);
Page<User> users = userService.getUsers(pageable);
// 返回结果,包括总记录数和数据列表
return new RestResponse<>(users.getTotalElements(), users.getContent());
}
```
阅读全文