步骤:
- 根据查询条件获取总记录数,这可以通过数据库查询、API调用等方式完成。
- 计算总页数,可以通过总记录数除以每页显示的记录数来得到。
- 根据当前页数和每页显示的记录数,计算出需要跳过的记录数,即偏移量。
- 使用数据库查询或API调用时,将偏移量和每页显示的记录数作为参数传递,来获取当前页的数据
以下是一个简单的示例代码,使用JDBC进行分页查询:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class PaginationExample {
private static final String DB_URL = "jdbc:mysql://localhost:3306/database_name";
private static final String DB_USER = "username";
private static final String DB_PASSWORD = "password";
public static void main(String[] args) {
int pageSize = 10; //每页显示的记录数
int currentPage = 1; //当前页数
try (Connection connection = DriverManager.getConnection(DB_URL, DB_USER, DB_PASSWORD)) {
// 计算偏移量
int offset = (currentPage - 1) * pageSize;
// 查询当前页的数据
String query = "SELECT * FROM your_table LIMIT ? OFFSET ?";
try (PreparedStatement statement = connection.prepareStatement(query)) {
statement.setInt(1, pageSize);
statement.setInt(2, offset);
try (ResultSet resultSet = statement.executeQuery()) {
while (resultSet.next()) {
// 处理结果集
// ...
}
}
}
// 获取总记录数
String countQuery = "SELECT COUNT(*) FROM your_table";
try (PreparedStatement countStatement = connection.prepareStatement(countQuery);
ResultSet countResultSet = countStatement.executeQuery()) {
if (countResultSet.next()) {
int totalRecords = countResultSet.getInt(1);
// 计算总页数
int totalPages = (int) Math.ceil((double) totalRecords / pageSize);
System.out.println("总记录数: " + totalRecords);
System.out.println("总页数: " + totalPages);
}
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}