java 实现分页
时间: 2023-07-02 14:07:41 浏览: 53
在 Java 中实现分页可以使用以下步骤:
1. 定义每页显示的记录数和当前页码。
```
int pageSize = 10; // 每页显示的记录数
int currentPage = 1; // 当前页码
```
2. 从数据库中查询总记录数。
```
String countSQL = "SELECT COUNT(*) FROM table_name";
PreparedStatement countStmt = connection.prepareStatement(countSQL);
ResultSet countRs = countStmt.executeQuery();
countRs.next();
int totalRecord = countRs.getInt(1); // 总记录数
```
3. 计算总页数。
```
int totalPage = totalRecord % pageSize == 0 ? totalRecord / pageSize : totalRecord / pageSize + 1;
```
4. 计算当前页的起始位置。
```
int startPosition = (currentPage - 1) * pageSize;
```
5. 查询当前页的数据。
```
String dataSQL = "SELECT * FROM table_name LIMIT ?, ?";
PreparedStatement dataStmt = connection.prepareStatement(dataSQL);
dataStmt.setInt(1, startPosition);
dataStmt.setInt(2, pageSize);
ResultSet dataRs = dataStmt.executeQuery();
while (dataRs.next()) {
// 处理每条数据
}
```
完整的代码示例:
```java
int pageSize = 10; // 每页显示的记录数
int currentPage = 1; // 当前页码
String countSQL = "SELECT COUNT(*) FROM table_name";
PreparedStatement countStmt = connection.prepareStatement(countSQL);
ResultSet countRs = countStmt.executeQuery();
countRs.next();
int totalRecord = countRs.getInt(1); // 总记录数
int totalPage = totalRecord % pageSize == 0 ? totalRecord / pageSize : totalRecord / pageSize + 1;
int startPosition = (currentPage - 1) * pageSize;
String dataSQL = "SELECT * FROM table_name LIMIT ?, ?";
PreparedStatement dataStmt = connection.prepareStatement(dataSQL);
dataStmt.setInt(1, startPosition);
dataStmt.setInt(2, pageSize);
ResultSet dataRs = dataStmt.executeQuery();
while (dataRs.next()) {
// 处理每条数据
}
```