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

山西网站建设制作推广杭州网站程序开发公司

山西网站建设制作推广,杭州网站程序开发公司,摄影标志logo设计欣赏,网站建设与推广员岗位职责目录 前言1. 项目环境配置1.1 添加 PageHelper 依赖1.2 数据库和 MyBatis 配置 2. 统一的分页响应类3. 使用 PageHelper 实现分页查询3.1 Service 层分页查询实现3.2 PageHelper 分页注意事项 4. 控制层调用示例5. 常见问题与解决方案5.1 java.util.ArrayList cannot be cast t… 目录 前言1. 项目环境配置1.1 添加 PageHelper 依赖1.2 数据库和 MyBatis 配置 2. 统一的分页响应类3. 使用 PageHelper 实现分页查询3.1 Service 层分页查询实现3.2 PageHelper 分页注意事项 4. 控制层调用示例5. 常见问题与解决方案5.1 java.util.ArrayList cannot be cast to com.github.pagehelper.Page5.2 分页参数未生效返回全部数据 结语 前言 在 Web 应用开发中分页查询是非常常见的需求特别是在涉及大量数据的应用场景中通过分页可以减少数据加载压力提升系统性能。然而手动实现分页查询需要编写繁琐的 SQL 语句和逻辑代码容易出现错误。为了简化分页实现我们可以借助 PageHelper 这一优秀的分页插件它能够无缝整合进 Spring Boot 项目快速实现分页功能。本文将详细介绍如何在 Spring Boot 中整合 PageHelper并通过示例演示如何进行分页查询。 1. 项目环境配置 1.1 添加 PageHelper 依赖 首先在 Spring Boot 项目中的 pom.xml 文件中添加 PageHelper 的依赖项。本文使用 pagehelper-spring-boot-starter 作为依赖包该依赖能够自动配置 PageHelper减少手动配置的复杂性。以下是 Maven 依赖的示例 dependencygroupIdcom.github.pagehelper/groupIdartifactIdpagehelper-spring-boot-starter/artifactIdversion1.4.6/version /dependency添加依赖后PageHelper 将会自动被 Spring Boot 扫描并加载到上下文中无需额外配置。此处的 1.4.6 版本适用于 Spring Boot 2.0 版本如果使用其他版本的 Spring Boot确保选择兼容的 PageHelper 版本。 1.2 数据库和 MyBatis 配置 在 application.yml 中完成数据库的基本配置并确认已经集成了 MyBatis。以下是一个基础的数据库配置示例 spring:datasource:url: jdbc:mysql://localhost:3306/testdbusername: rootpassword: passworddriver-class-name: com.mysql.cj.jdbc.Drivermybatis:mapper-locations: classpath:mapper/*.xml2. 统一的分页响应类 为了方便返回分页数据并使返回结果具有一致性可以定义一个统一的分页响应类。例如定义一个 PageResponseT 类该类包含总页数、总条数、当前页数据等信息。 public class PageResponseT {private long total; // 总记录数private int pages; // 总页数private ListT data; // 当前页数据public PageResponse(long total, int pages, ListT data) {this.total total;this.pages pages;this.data data;}// Getters and Setters }在实际使用中通过 PageHelper 查询得到的 PageInfo 对象中包含分页信息可以将其数据提取并填充到 PageResponse 中以统一格式返回。 3. 使用 PageHelper 实现分页查询 在配置好依赖和基础环境后接下来在 Service 层中使用 PageHelper 实现分页查询。假设有一个 UserService 用于处理用户数据查询可以按以下步骤实现分页功能。 3.1 Service 层分页查询实现 PageHelper 的分页逻辑非常简单只需在查询方法中通过 PageHelper.startPage(pageNum, pageSize) 设置分页参数接着调用查询方法即可获得分页结果。以下示例展示了 UserService 的实现 Service public class UserService {Autowiredprivate UserMapper userMapper;public PageResponseUser getUsers(int pageNum, int pageSize) {PageHelper.startPage(pageNum, pageSize); // 设置分页参数ListUser userList userMapper.selectAll(); // 执行查询PageInfoUser pageInfo new PageInfo(userList); // 使用PageInfo包装分页结果// 使用PageResponse返回统一分页格式return new PageResponse(pageInfo.getTotal(), pageInfo.getPages(), pageInfo.getList());} }在 getUsers() 方法中首先通过 PageHelper.startPage() 设置分页参数随后调用 selectAll() 执行数据库查询。PageHelper 会拦截该查询并自动添加分页 SQL返回的 userList 为分页结果然后用 PageInfo 包装查询结果。 3.2 PageHelper 分页注意事项 startPage 方法的调用位置PageHelper.startPage(pageNum, pageSize) 必须在查询方法之前调用否则分页信息将不会生效。自动分页结果类型selectAll() 返回的 userList 实际上是 Page 类型的 ListPage 实现了 List 接口因此可以正常操作。但直接强制转换为 Page 可能会导致错误正确的方式是将结果用 PageInfo 包装。版本兼容性问题如果使用 PageHelper 版本与 Spring Boot 不兼容可能会导致分页信息不正确。确保选择正确的版本如 PageHelper 1.4.6 与 Spring Boot 2.0 兼容性良好。 4. 控制层调用示例 在控制器层调用 UserService 的 getUsers() 方法并将 PageResponse 数据返回给前端。以下是一个简单的控制层示例 RestController RequestMapping(/users) public class UserController {Autowiredprivate UserService userService;GetMapping(/page)public ResponseEntityPageResponseUser getUsers(RequestParam int pageNum, RequestParam int pageSize) {PageResponseUser pageResponse userService.getUsers(pageNum, pageSize);return ResponseEntity.ok(pageResponse);} }通过 GetMapping(/page) 实现分页查询接口前端可以通过传递 pageNum 和 pageSize 参数来控制分页查询的页码和每页数量。 5. 常见问题与解决方案 5.1 java.util.ArrayList cannot be cast to com.github.pagehelper.Page 出现此异常的原因通常是因为尝试将 ArrayList 强制转换为 Page 类型。实际上分页查询返回的 List 是 Page 的实例但我们不应该直接进行类型转换而是通过 PageInfo 进行包装这样可以避免强制转换带来的问题。 5.2 分页参数未生效返回全部数据 如果 PageHelper 无法获取正确的分页参数导致返回所有数据可能是以下原因之一 版本兼容性问题确保 PageHelper 和 Spring Boot 的版本兼容。推荐 PageHelper 1.4.6 版本与 Spring Boot 2.0。调用顺序问题PageHelper.startPage() 必须在查询数据库之前调用否则分页不会生效。 通过确认上述设置基本可以解决分页参数未生效的问题。 结语 在 Spring Boot 项目中整合 PageHelper 可以大大简化分页查询的实现。本文详细介绍了 PageHelper 的配置方法、Service 层分页查询的实现步骤以及常见问题的解决方法。通过 PageHelper我们可以方便地对数据库数据进行分页处理提升系统的查询效率和用户体验。希望本文内容能为大家在实际开发中带来帮助。
http://www.pierceye.com/news/501332/

相关文章:

  • 用安卓做网站php网站开发系统
  • 58同城网站建设的不足网站前台代码
  • 网站建设销售人员培训教程长兴县建设局网站
  • 用vue框架做的pc端网站wordpress改造论坛
  • 大庆建设网站首页中国寰球工程有限公司网站设计
  • 免费搭建贴吧系统网站js做网站框架
  • 泰安如何选择网站建设网盘 商业网站建设案例课程 下载
  • 可信赖的邵阳网站建设动漫设计属于什么大类
  • 西安网站排名优化网站设计用什么软件实现
  • 网站注册页面模板html5教程百度云
  • 深圳装饰公司前十强佛山seo优化电话
  • 广东阳春市建设局网站做手机网站的重要性
  • 设置网站的关键词自己做网站有什么用
  • 做那个网站比较好百度百科优化排名
  • 好发信息网站建设新闻今天最新消息
  • 邮件服务器是不是网站服务器河南住房和城乡建设网站
  • 微网站管理平台网站连锁店查询怎么做
  • 网域高科学校网站管理系统企业融资以什么为基础
  • 百度网站改版工具提高网站安全性
  • 科技网站推荐南宁百度seo
  • 设计婚纱网站wordpress主题制作全过程新手必看
  • 郑州网站seo厂家上海制作网页的公司有哪些
  • 网站修改关键词不收录vps 可以做多个网站吗
  • 营销外包网站App加网站什么做
  • 网页设计网站制作视频教程重庆是哪个省份
  • 国家建设厅官方网站平台类网站有哪些
  • 多语言网站建设公司wap网站技术
  • 网站制作设计多少钱上海智能网站建设公司
  • 知名的教育行业网站开发华夏集团网站建设
  • flash网站用什么做wordpress搭建群空间