Java后端实现不用pagehelper。手写分页如何实现?

这篇具有很好参考价值的文章主要介绍了Java后端实现不用pagehelper。手写分页如何实现?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Java后端实现不用pagehelper。手写分页如何实现?

如果你不使用PageHelper这样的分页插件,你可以手动实现分页逻辑。下面是一个使用Java后端手写分页的示例:

首先,确定每页显示的数据量和当前页码。

int pageSize = 10; // 每页显示的数据量
int currentPage = 1; // 当前页码

确定查询总数据量的SQL语句。

String countSql = "SELECT COUNT(*) FROM your_table";

执行上述SQL语句,获取总数据量。

// 执行countSql语句,返回结果集ResultSet
// 假设使用JDBC连接数据库,可以使用Statement或者PreparedStatement执行查询操作
ResultSet countResult = statement.executeQuery(countSql);

int totalCount = 0;
if (countResult.next()) {
    totalCount = countResult.getInt(1); // 获取第一列的数据作为总数据量
}
countResult.close();

根据总数据量和每页显示的数据量计算总页数。

int totalPages = (int) Math.ceil((double) totalCount / pageSize);

根据当前页码和每页显示的数据量计算偏移量

String pageSql = "SELECT * FROM your_table LIMIT ?, ?";

执行分页查询,获取当前页的数据。

// 执行pageSql语句,设置偏移量和每页数据量的参数
// 假设使用JDBC连接数据库,可以使用PreparedStatement执行查询操作
PreparedStatement pageStatement = connection.prepareStatement(pageSql);
pageStatement.setInt(1, offset);
pageStatement.setInt(2, pageSize);

ResultSet pageResult = pageStatement.executeQuery();

// 遍历结果集,获取分页数据
while (pageResult.next()) {
    // 处理每一行数据
}

pageResult.close();
pageStatement.close();

通过以上步骤,你就可以手动实现分页功能了。需要注意的是,这只是一个简单的示例,实际应用中可能需要处理更多的异常情况和参数校验。同时,根据具体的数据库类型和框架,代码的具体实现方式可能会有所不同。

要是前端需要一个list。我如何使用Java分页后给他返回?

假设你已经完成了手动分页查询的代码,可以得到当前页的数据。

List<YourDataModel> dataList = new ArrayList<>();

// 执行分页查询,获取当前页的数据
while (pageResult.next()) {
    YourDataModel data = new YourDataModel();
    // 假设YourDataModel是你的数据模型类,可以根据需要设置相应的属性值
    // 例如:data.setId(pageResult.getInt("id"));
    //       data.setName(pageResult.getString("name"));
    dataList.add(data);
}

pageResult.close();
pageStatement.close();

将数据列表和分页信息封装成一个结果对象。

// 使用Jackson、Gson等库将结果对象转换成JSON字符串
String jsonResult = YourJsonConverter.convertToJson(result);

将JSON字符串作为响应返回给前端。

// 将JSON字符串作为响应返回给前端
response.getWriter().write(jsonResult);

上述示例中,我们使用了一个名为 PageResult 的类来封装分页结果,你可以根据自己需求自定义该类,并根据具体框架或库的要求进行JSON转换。

当前端接收到这个JSON字符串后,就可以解析其中的数据和分页信息,进行展示和处理了。

要是我查询没有做分页查询,如何将全部结果分页后返回?

完成查询操作,获取到所有的结果数据。

List<YourDataModel> dataList = new ArrayList<>();

// 执行查询操作,获取所有的结果数据
while (resultSet.next()) {
    YourDataModel data = new YourDataModel();
    // 设置数据属性
    dataList.add(data);
}

resultSet.close();
statement.close();

根据前端需要的分页信息(如每页显示的数据量和当前页码),进行分页处理。

int pageSize = 10; // 每页显示的数据量
int currentPage = 1; // 当前页码

int totalCount = dataList.size(); // 总数据量
int totalPages = (int) Math.ceil((double) totalCount / pageSize); // 总页数

int startIndex = (currentPage - 1) * pageSize; // 计算起始索引
int endIndex = currentPage * pageSize; // 计算结束索引

if (endIndex > totalCount) {
    endIndex = totalCount; // 确保结束索引不超过总数据量
}

List<YourDataModel> pageDataList = dataList.subList(startIndex, endIndex); // 获取当前页的数据

将分页数据和分页信息封装成一个结果对象。

// 创建一个结果对象,包含数据列表和分页信息
PageResult<YourDataModel> result = new PageResult<>();
result.setDataList(pageDataList); // 设置数据列表

result.setCurrentPage(currentPage); // 设置当前页码
result.setPageSize(pageSize); // 设置每页显示的数据量
result.setTotalCount(totalCount); // 设置总数据量
result.setTotalPages(totalPages); // 设置总页数

使用合适的方式将结果对象转换为前端需要的格式,如JSON格式。

// 使用Jackson、Gson等库将结果对象转换成JSON字符串
String jsonResult = YourJsonConverter.convertToJson(result);

将JSON字符串作为响应返回给前端。

// 将JSON字符串作为响应返回给前端
response.getWriter().write(jsonResult);

请注意,上述示例中我们手动进行了分页处理,实际应用中可能需要根据具体需求进行异常处理、参数校验等。同时,根据具体的数据库类型和框架,代码的具体实现方式可能会有所不同。文章来源地址https://www.toymoban.com/news/detail-660952.html

到了这里,关于Java后端实现不用pagehelper。手写分页如何实现?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 7.3 SpringBoot整合MyBatis分页插件github.pageHelper:实现图书列表API

    在软件开发中,分页是一个非常常见的需求,无论是在Web应用程序还是在移动应用程序中,我们经常需要将大量的数据分成多个页面进行展示。 本文主要实现图书列表API,使用 SpringBoot集成MyBatis分页插件github.pageHelper ,首先会从「 自己实现分页原理 」说起,再到「 使用gi

    2024年02月11日
    浏览(61)
  • tk-mybatis使用介绍,springboot整合tk-mybatis、PageHelper实现分页查询

    Mybatis-Plus极大简化了我们的开发,作为mybatis的增强版,Mybatis-Plus确实帮我们减少了很多SQL语句的编写,通过其提供的API,可以方便地完成增删查改操作。但是,其实除了Mybatis-Plus以外,还有一个技术tk-mybatis可以达到同样的效果,只不过随着MP的兴起,tk-mybatis已经被渐渐淡忘

    2024年02月12日
    浏览(40)
  • 6.Mybatis分页插件(PageHelper),解决PageHelper.startPage()不安全分页

    Mybatis专栏目录(点击进入…) @TOC 引入分页插件有下面2种方式,推荐使用Maven方式 (1)引入Jar包 可以从下面的地址中下载最新版本的jar包 https://oss.sonatype.org/content/repositories/releases/com/github/pagehelper/pagehelper/ http://repo1.maven.org/maven2/com/github/pagehelper/pagehelper/ 由于使用了sql解析

    2024年02月03日
    浏览(57)
  • Mybatis---分页插件PageHelper

    目录 一、分页插件的概念 二、PageHelper的介绍 (1)引入依赖 (2)Mybatis配置文件配置PageHelper插件 (3)测试方法 开发过程中如果要进行分页查询,需要传入页数和每页条数。返回页面数据,总条数,总页数,当前页面,每页条数等数据。此时使用PageHelper插件可以快速帮助我

    2024年02月09日
    浏览(37)
  • SpringBoot分页插件(PageHelper)

    Mybatis给开发者提供了一个拦截器接口,只要实现了该接口,就可以在Mybatis执行SQL前,作一些自定义的操作。分页插件就是在此基础上开发出来的,对于一个需要分页的SQL,插件会拦截并生成两段SQL。举一个简单的例子 这样我们只需要根据业务逻辑开发原SQL,不需关心分页语

    2024年04月11日
    浏览(47)
  • Mybatis 分页插件 PageHelper

    今天记录下 Mybatis 分页插件 pageHelper 的使用。 有一个员工表(employee),现在要使用 pageHelper 插件实现员工的分页查询。 Employee employee类定义代码如下 EmployeeDTO EmployeeDTO定义代码如下 PageResult 最后返回给前端的数据封装在 PageResult 类中, PageHelper 类定义如下: EmployeePageQueryDTO 分

    2024年01月19日
    浏览(64)
  • 若依框架---PageHelper分页(一)

    我们简单阐述了若依系统中的分页架构,若依系统中的后端分页主要代码接口的三个特点: 返回值类型为 TableDataInfo 接口第一行代码 startPage() 接口最后一句: getDataTable(list) 我们已经看到了 TableDataInfo 的数据结构,就是一个分页的数据结构,有 total ,有 rows 数据。 今天我们来

    2023年04月08日
    浏览(26)
  • java通用分页(后端)

    目录 1.通用分页是什么? 2.通用分页的作用 3. 通用分页的优缺点  4.通用分页的核心思想 5.通用分页实例 书籍实体类: 封装pageBean类: 书籍“分页模糊查询所有”方法  封装baseDao通用分页模糊查询的方法 6.单元测试框架JUnit4  eclipse中使用JUnit4 为什么是JUnit4不是JUnit5? Java通

    2024年02月09日
    浏览(38)
  • Java设置后端分页

    getPages(Integer.parseInt(String.valueOf(page.getCurrent())),Integer.parseInt(String.valueOf(page.getSize())),dtos); /** * 对list分页 * @param currentPage * @param pageSize * @param list * @return */ private IPage getPages(Integer currentPage, Integer pageSize, List list) { IPage page = new Page(); if(list == null){ return null; } int size = list.size();

    2024年02月06日
    浏览(36)
  • MyBatis之分页查询:MyBatis PageHelper

    MyBatis,作为目前流行的ORM框架,大大方便了日常开发。而对于分页查询,虽然可以通过SQL的limit语句实现,但是比较繁琐。而MyBatis PageHelper的出现,则解决了这一痛点。这里将介绍如何在Spring Boot、MyBatis的环境中通过MyBatis PageHelper高效方便的实现分页查询 添加Maven依赖 添加配

    2024年02月09日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包