java 手动分页
时间: 2023-06-21 15:06:26 浏览: 83
Java 手动分页的实现可以通过以下步骤完成:
1. 根据总记录数和每页显示的记录数计算出总页数。
2. 根据当前页码和每页显示的记录数计算出当前页的起始记录索引。
3. 从数据源中获取起始记录索引到结束记录索引之间的记录。
4. 将获取到的记录展示在页面上。
具体实现可以参考如下代码:
```
/**
* 手动分页查询
* @param pageNum 当前页码
* @param pageSize 每页显示的记录数
* @return 当前页的记录列表
*/
public List<Record> queryByPage(int pageNum, int pageSize) {
// 查询总记录数
int totalRecords = getTotalRecords();
// 计算总页数
int totalPage = (int) Math.ceil(totalRecords / (double) pageSize);
// 计算当前页的起始记录索引
int start = (pageNum - 1) * pageSize;
// 从数据源中获取起始记录索引到结束记录索引之间的记录
List<Record> records = getRecords(start, pageSize);
// 返回当前页的记录列表
return records;
}
```
注意:以上代码仅为演示手动分页实现的思路,实际项目中需要根据具体需求进行优化和改进。
相关问题
java 手动分页工具类
以下是一个Java手动分页的工具类的示例:
```java
import java.util.List;
public class PaginationUtils {
public static <T> List<T> getPage(List<T> list, int pageNum, int pageSize) {
int startIndex = (pageNum - 1) * pageSize;
int endIndex = Math.min(startIndex + pageSize, list.size());
return list.subList(startIndex, endIndex);
}
}
```
使用示例:
```java
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<String> dataList = new ArrayList<>();
dataList.add("A");
dataList.add("B");
dataList.add("C");
dataList.add("D");
dataList.add("E");
dataList.add("F");
dataList.add("G");
dataList.add("H");
dataList.add("I");
dataList.add("J");
int pageNum = 2;
int pageSize = 3;
List<String> pageData = PaginationUtils.getPage(dataList, pageNum, pageSize);
System.out.println(pageData); // 输出:[D, E, F]
}
}
```
java手动分页实现代码
以下是Java手动分页的示例代码:
```java
public List<User> getUsers(int pageNo, int pageSize) {
int start = (pageNo - 1) * pageSize;
String sql = "SELECT * FROM users LIMIT ?, ?";
List<User> users = new ArrayList<>();
try (Connection conn = DriverManager.getConnection(url, username, password);
PreparedStatement ps = conn.prepareStatement(sql)) {
ps.setInt(1, start);
ps.setInt(2, pageSize);
try (ResultSet rs = ps.executeQuery()) {
while (rs.next()) {
User user = new User();
user.setId(rs.getInt("id"));
user.setName(rs.getString("name"));
user.setEmail(rs.getString("email"));
user.setPhone(rs.getString("phone"));
users.add(user);
}
}
} catch (SQLException e) {
e.printStackTrace();
}
return users;
}
```
在上面的代码中,我们使用了LIMIT语句来实现分页,start变量表示查询的起始位置,pageSize表示每页的记录数。此外,我们还使用PreparedStatement来避免SQL注入攻击。最后,我们返回一个包含User对象的List,这些User对象是从数据库中获取的。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)