Java实现分页代码

下面是Java实现分页代码的完整攻略。

确定分页参数

Java实现分页代码的第一步就是要确定分页参数,常见的分页参数有:当前页码、每页显示的记录数、总记录数、总页数等。

计算总页数

需要先根据每页记录数和总记录数计算出总页数。计算方法是将总记录数除以每页显示的记录数,如果余数大于0,则总页数需要加1。

// 计算总页数
int totalPage = totalRecord / pageSize;       
if (totalRecord % pageSize > 0) {
    totalPage++;
}

查询当前页数据

根据分页参数查询当前页的数据。在SQL语句中使用LIMIT关键字限制查询结果的范围。

// SELECT * FROM table LIMIT offset, pageSize
String sql = "SELECT * FROM table LIMIT ?, ?";
List<Object> params = new ArrayList<Object>();
params.add((currentPage - 1) * pageSize);
params.add(pageSize);
List<Map<String, Object>> data = jdbcTemplate.queryForList(sql, params.toArray());

构建分页导航栏

分页导航栏可以让用户方便地切换不同页码的数据。一般情况下,分页导航栏可以显示当前页、总页数、首页、上一页、下一页、尾页等信息。

// 构建分页导航栏
StringBuilder sb = new StringBuilder();
sb.append("当前第" + currentPage + "页,共" + totalPage + "页");
if (currentPage > 1) {
    sb.append("<a href='?page=1'>首页</a>");
    sb.append("<a href='?page=" + (currentPage - 1) + "'>上一页</a>");
}
if (currentPage < totalPage) {
    sb.append("<a href='?page=" + (currentPage + 1) + "'>下一页</a>");
    sb.append("<a href='?page=" + totalPage + "'>尾页</a>");
}

示例1:SpringBoot分页实现

下面是使用SpringBoot框架实现分页的示例代码。

@GetMapping("/users")
public String getAllUser(@RequestParam(defaultValue = "1") int page,
                         @RequestParam(defaultValue = "10") int size,
                         Model model) {
    int totalRecord = userService.countUser();
    int totalPage = totalRecord / size;
    if (totalRecord % size > 0) {
        totalPage++;
    }
    List<User> users = userService.getUserByPage((page - 1) * size, size);
    model.addAttribute("users", users);
    model.addAttribute("totalPage", totalPage);
    model.addAttribute("currentPage", page);
    return "user-list";
}

示例2:JSP分页实现

下面是使用JSP页面实现分页的示例代码。

<%
int currentPage = request.getParameter("page") == null ? 1 : Integer.parseInt(request.getParameter("page"));
int pageSize = 10;
int totalRecord = userService.countUser();
int totalPage = totalRecord / pageSize;
if (totalRecord % pageSize > 0) {
    totalPage++;
}
List<User> users = userService.getUserByPage((currentPage - 1) * pageSize, pageSize);
%>
<table>
    <thead>
        <tr>
            <th>ID</th>
            <th>姓名</th>
            <th>年龄</th>
        </tr>
    </thead>
    <tbody>
        <% for (User user : users) { %>
        <tr>
            <td><%= user.getId() %></td>
            <td><%= user.getName() %></td>
            <td><%= user.getAge() %></td>
        </tr>
        <% } %>
    </tbody>
</table>
<div>
    当前第<%= currentPage %>页,共<%= totalPage %>页 
    <% if (currentPage > 1) { %>
    <a href="?page=1">首页</a>
    <a href="?page=<%= currentPage - 1 %>">上一页</a>
    <% } %>
    <% if (currentPage < totalPage) { %>
    <a href="?page=<%= currentPage + 1 %>">下一页</a>
    <a href="?page=<%= totalPage %>">尾页</a>
    <% } %>
</div>

以上就是Java实现分页代码的完整攻略,希望可以对你有所帮助。

阅读剩余 60%

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java实现分页代码 - Python技术站

(0)
上一篇 2023年5月18日
下一篇 2023年5月18日

相关文章

  • 使用maven打包生成doc文档和打包源码

    使用maven打包生成doc文档和打包源码的完整攻略如下: 一、生成文档 添加maven插件:在pom.xml文件中,添加以下插件: <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifact…

    Java 2023年5月19日
    00
  • 使用ObjectMapper解析json不用一直new了

    ObjectMapper 是一个流行的 Java 库,用于将 JSON 对象与 Java 对象相互转换。在使用 ObjectMapper 的时候,常常需要实例化一个 ObjectMapper 对象,然后使用它来完成 JSON 和 Java 对象之间的转换操作。然而,这样会导致代码的冗长和臃肿。本攻略介绍如何使用 ObjectMapper 解析 JSON 不用…

    Java 2023年5月26日
    00
  • Java源码解析阻塞队列ArrayBlockingQueue常用方法

    接下来我将详细讲解Java源码解析阻塞队列ArrayBlockingQueue常用方法的完整攻略。 1. 阻塞队列ArrayBlockingQueue Java中的阻塞队列是一个支持等待队列的数据结构。因为是“阻塞”的,所以当队列为空时,试图从队列中获取元素的线程会被阻塞,同样当队列已满时,试图向队列中添加元素的线程也会被阻塞。 ArrayBlockingQ…

    Java 2023年5月26日
    00
  • Java 其中翻转字符串的实现方法

    要实现Java中字符串翻转,有多种方法可以选择,包括使用for循环、StringBuilder和递归等。下面将分别介绍它们的实现方法: 使用for循环 使用for循环实现Java中字符串的翻转,可以先将字符串转换成字符数组,再使用两个指针分别从字符串的开头和结尾向中间遍历,每遍历一次,则将两个指针指向的字符互换位置,最终完成翻转。代码如下: public s…

    Java 2023年5月27日
    00
  • java操作mysql实现增删改查的方法

    Java操作MySQL实现增删改查的方法完整攻略 1. 环境准备 在Java项目中,我们需要使用JDBC来操作MySQL数据库,因此需要引入MySQL的JDBC驱动包。以Maven项目为例,我们可以在pom.xml文件中加入以下依赖: <dependency> <groupId>mysql</groupId> <ar…

    Java 2023年5月20日
    00
  • java编写的文件管理器代码分享

    下面是“Java编写的文件管理器代码分享”的完整攻略: 一、介绍 Java是一门广泛使用的编程语言,其编写出的程序可运行在不同操作系统的计算机上,具有很强的跨平台性。在Java中,我们可以使用java.io包中的类来处理文件和文件夹,并实现一个简单的文件管理器。 二、文件管理器基本功能 一个基本的文件管理器应该具有以下功能: 列出文件夹中的所有文件和子文件夹…

    Java 2023年5月20日
    00
  • java-制表符\t的使用说明

    当我们需要在Java中对齐输出内容时,可以使用制表符\t来实现。\t代表一个制表符,它的作用是在输出时产生一个横向的制表位,使得相邻输出结果能够对齐。下面是使用\t的一些说明和示例: 1. 在 System.out.println() 中使用制表符 可以在 System.out.println() 中使用制表符\t,来实现输出对齐的效果。以下是一个示例代码:…

    Java 2023年5月26日
    00
  • Python提取支付宝和微信支付二维码的示例代码

    针对Python提取支付宝和微信支付二维码的示例代码,我可以提供以下攻略: 1. 安装必备库 首先,我们需要使用Python requests库来获取支付宝和微信支付页面的HTML内容,因此我们需要确保该库已经安装。如果你还没有安装requests库,可以在终端输入以下命令: pip install requests 2. 获取HTML内容 接下来,我们需要…

    Java 2023年5月23日
    00
合作推广
合作推广
分享本页
返回顶部