当前位置: 首页 > news >正文

spring博客实现分页查询

1、首先创建dto下的分页类PageBean

package com.zzz.blog.dto;import java.util.List;public class PageBean {private Integer pageSize; //页面大小private Integer currentPage; //当前页private Integer totalCount; //总条数private Integer totalPage; //总页数private List list; //每页显示的数据public PageBean(Integer currentPage, Integer totalCount, Integer pageSize) {this.pageSize = pageSize;this.currentPage = currentPage;this.totalCount = totalCount;if(this.currentPage == null) {this.currentPage = 1;}if(this.pageSize == null) {this.pageSize = 5;}//计算总页数this.totalPage = (int) Math.ceil(1.0 * this.totalCount / this.pageSize);//安全if(this.currentPage > this.totalPage) {this.currentPage = this.totalPage;}if(this.currentPage < 1) {this.currentPage = 1;}}//开始的索引,select * from message limit ?,?   开始索引,页面大小public Integer getStart() {return (this.currentPage-1)*this.pageSize;}//get/set
}

2、在查询请求中返回PageBean

	@Autowiredprivate MessageService messageService;@RequestMapping("/findAllMessage") //查找当前页的所有留言public ModelAndView findAllMessage(Integer currentPage,Model model) {//查找当前页所有留言(分页查询)PageBean messagePageBean = messageService.getMessagePageBean(currentPage);//放入model中model.addAttribute("messagePageBean", messagePageBean);return new ModelAndView("/gustbook", "messageModel", model);}

3、实现getMessagePageBean方法和完成jpa的crud接口

package com.zzz.blog.service;import...@Component
public class MessageServiceImpl implements MessageService{@Autowiredprivate MessageRepository messageRepository;...@Override //根据当前页获得当前页数据public PageBean getMessagePageBean(Integer currentPage) {//计算总条数量Integer totalCount = messageRepository.findAllMessageNum();//获得构造pageBeanPageBean pageBean = new PageBean(currentPage, totalCount, 5);//拿到当前页listList<Message> list = messageRepository.getMessagePageList(pageBean.getStart(),pageBean.getPageSize());//赋值给pageBeanpageBean.setList(list);return pageBean;}}
package com.zzz.blog.repository;import ...import com.zzz.blog.domain.Message;public interface MessageRepository extends CrudRepository<Message, Long>{@Query(value="select count(*) from message",nativeQuery = true)Integer findAllMessageNum();@Query(value="select * from message limit ?1,?2",nativeQuery = true)List<Message> getMessagePageList(Integer start, Integer pageSize);}

4、前端接收参数

<!-- 取list里的对象,命名为message,并且遍历list -->
<li th:each="message:${messagePageBean.list}">
...
<img th:src="${message.visitor.image}">
...
</li>
http://www.lryc.cn/news/175856.html

相关文章:

  • 代码阅读分析神器-Scitools Understand
  • 学霸吐血整理‼《2023 年 IC 验证岗面试真题解析》宝藏干货!
  • 稳定性、可靠性、可用性、灵活性、解耦性
  • docker搭建Redis三主三从
  • 亚马逊要求的UL报告的产品标准是什么?如何区分
  • 如何在linux定时备份opengauss数据库(linux核心至少在GLIBC_2.34及以上)
  • SkyWalking快速上手(七)——Skywalking UI 界面简介
  • python+vue驾校驾驶理论考试模拟系统
  • go-redis 框架基本使用
  • java内嵌浏览器CEF-JAVA、jcef、java chrome
  • string类模拟实现——C++
  • 在 SQL Server 中,可以使用加号运算符(+)来拼接字符串。但是,如果需要拼接多个字符串或表中的字段,就需要使用内置的拼接函数了
  • 蓝桥杯每日一题2023.9.25
  • 前端面试的话术集锦第 20 篇博文——高频考点(输入 URL 到页面渲染的整个流程)
  • Android Jetpack Compose之确定重组范围并优化重组
  • 【JDK 8-集合框架进阶】6.1 parallelStream 并行流
  • C语言中结构体,枚举,联合相关介绍
  • 【干货】GNSS连续运行基准站网
  • 如何使用iPhone15在办公室观看家里电脑上的4k电影,实现公网访问本地群晖!
  • LeetCode之26.删除有序数组中的重复项和80.删除有序数组中的重复项II(C++)
  • linux驱动之input子系统简述
  • 嵌入式裸机架构的探索与崩塌
  • MySQL高级语句(第二部分)
  • HTML计时事件(JavaScript)网页电子钟+网页计时器
  • 使用群晖实现Videostation电影的大容量存储及分享教程
  • 后端大厂面试-15道题
  • C++: 冒泡排序(Bubble Sort)
  • 跨域的解决方案
  • 如何使用Java语言判断出geek是字符串参数类型,888是整数参数类型,[hello,world]是数组参数类型,2.5是双精度浮点数类型?
  • 9.20华为机试-后端