Mybatis-Plus实现分页的代码
时间: 2023-05-28 07:07:31 浏览: 133
Mybatis Plus 自定义方法实现分页功能的示例代码
1. 首先在pom.xml中添加Mybatis-Plus的依赖:
```
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.2</version>
</dependency>
```
2. 在application.yml中配置Mybatis-Plus的分页插件:
```
mybatis-plus:
global-config:
db-config:
id-type: auto # 主键策略
table-prefix: mp_ # 表前缀
logic-delete-value: 1 #逻辑删除值
logic-not-delete-value: 0 #逻辑未删除值
sql-injector: com.baomidou.mybatisplus.core.injector.LogicSqlInjector # 逻辑删除插件
# 分页插件配置
page-params: # 分页参数
limit: 10 # 每页显示条数,默认 10
max-limit: 1000 # 最大限制数,默认 500
```
3. 在Mapper接口中继承Mybatis-Plus的BaseMapper接口,并使用@Mapper注解标注该接口:
```
@Mapper
public interface UserMapper extends BaseMapper<User> {
}
```
4. 在Service层的方法中,使用Page对象进行分页查询:
```
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public Page<User> getUserPage(int pageNum, int pageSize) {
Page<User> page = new Page<>(pageNum, pageSize);
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.orderByDesc("id");
userMapper.selectPage(page, wrapper);
return page;
}
}
```
其中,Page的构造方法需要传入当前页码和每页显示的记录数,selectPage方法需要传入Page对象和查询条件的Wrapper对象。
5. 最后,在Controller层中,调用Service层的方法并将分页结果返回给前端:
```
@RestController
public class UserController {
@Autowired
private UserService userService;
@GetMapping("/users")
public Page<User> getUsers(@RequestParam(defaultValue = "1") int pageNum,
@RequestParam(defaultValue = "10") int pageSize) {
return userService.getUserPage(pageNum, pageSize);
}
}
```
其中,@RequestParam注解用于接收前端传来的参数,如果没有传入参数,则使用默认值。返回的结果会被自动转化为JSON格式。
阅读全文