分页功能:就是将后端得到的数据通过分页的形式展示给前端(页面)。
此处使用:
- 框架:SpringBoot2.6.6
- 模板引擎:thymeleaf(SpringBoot版本仲裁)
示例代码:
| id | 用户名 | age | |
|---|---|---|---|
| 12 | 毛哥 | 18 | 1457643551@qq.com |
| 12 | 毛哥 | 18 | 1457643551@qq.com |
| 12 | 毛哥 | 18 | 1457643551@qq.com |
当前第 1 页 总计 10 页 共 10 条记录
首页
1
2
3
尾页
2.使用Mybatis-Plus方式编写 dao层 和 service层
dao:(UserMapper.java)
@Mapper public interface UserMapper extends BaseMapperservice:(UserService.java & UserServiceImpl.java){ }
-
UserService.java(接口)
public interface UserService extends IService
{ } -
UserServiceImpl.java(实现类)
@Service public class UserServiceImpl extends ServiceImpl
implements UserService { }
@GetMapping("/paging")
public String pagin(@RequestParam(value = "pn",defaultValue = "1")Integer pn, Model model){
Page userPage = new Page<>(pn,2);
Page page = userService.page(userPage, null);
model.addAttribute("page", page);
return "pagin";
}
这里要详细的解说一下:
userService.page方法是分页查出数据,方法中有两个参数: - @param page(翻页对象),继承于IPape Page对象也有两个参数: - @param current 当前页 - @param size 每页显示条数 - @param queryWrapper (实体对象封装操作类):查询的条件封装对象 Pagepage = userService.page(userPage, null) 得到了分页查询的结果
通过得到的结果的page对象,
- page.getPages():得到总页码
- page.getCurrent:获取当前页码
- page.getRecords:获取所有记录(也就是对象集,我们需要的数据列表)
- page.getTotal:得到数据的总数
…还有很多的方法,可以去Mybatis-Plus官网查看
所有最后只需要把数据放入model中,就能通过thymeleaf模板引擎去页面获取!!!
4.使用thymeleaf来进行页面渲染示例代码:
| id | 用户名 | age | |
|---|---|---|---|
| 毛哥 | 18 | 1457643551@qq.com |
写一个配置类,然后把MybatisPlusInterceptor通过@Bean注入到SpringBoot容器中:
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor();
//这是分页拦截器
PaginationInnerInterceptor paginationInnerInterceptor = new PaginationInnerInterceptor();
// 设置请求页面大于最大页后操作,true调回到首页,false继续请求,默认false
paginationInnerInterceptor.setOverflow(true);
// 设置最大单页限制数量,默认500条,-1不受限制
paginationInnerInterceptor.setMaxLimit(500l);
mybatisPlusInterceptor.addInnerInterceptor(paginationInnerInterceptor);
return mybatisPlusInterceptor;
}
6.展示最终结果:
Mybatis-Plus分页功能展示



