Java手动分页查询的方法可以使用SQL语句的LIMIT和OFFSET子句,同时结合Java代码进行实现。
LIMIT子句用于限制查询结果返回的记录数,OFFSET子句用于指定查询结果的偏移量。通过在查询语句中指定LIMIT和OFFSET的值,可以实现分页查询的效果。
例如,假设要查询第2页,每页显示10条记录,可以使用如下的SQL语句:
SELECT * FROM table_name LIMIT 10 OFFSET 10;在Java代码中,可以通过传入页码和每页记录数等参数,动态生成查询语句。同时,还需要根据查询结果计算总页数和当前页的起始记录位置。
以下是一个示例代码:
public List<Record> getPage(int pageNum, int pageSize) {// 计算起始记录位置int offset = (pageNum - 1) * pageSize;// 生成查询语句String sql = "SELECT * FROM table_name LIMIT ? OFFSET ?";// 执行查询,并返回结果集try (PreparedStatement stmt = connection.prepareStatement(sql)) {stmt.setInt(1, pageSize);stmt.setInt(2, offset);ResultSet rs = stmt.executeQuery();// 处理结果集,将查询结果转换为对象列表List<Record> records = new ArrayList<>();while (rs.next()) {// 将查询结果转换为对象,并添加到列表中Record record = new Record();// 设置对象属性值records.add(record);}return records;} catch (SQLException e) {// 异常处理}return null;}public int getPageCount(int pageSize) {// 生成查询总记录数的语句String sql = "SELECT COUNT(*) FROM table_name";// 执行查询,并返回总记录数try (Statement stmt = connection.createStatement()) {ResultSet rs = stmt.executeQuery(sql);if (rs.next()) {int totalCount = rs.getInt(1);// 计算总页数int pageCount = (totalCount + pageSize - 1) / pageSize;return pageCount;}} catch (SQLException e) {// 异常处理}return 0;}通过getPage方法可以获取指定页码的数据列表,getPageCount方法可以获取总页数。调用这两个方法,就可以实现手动分页查询的功能。

