用Java写一个,sql,分页查询。结果用PageResult<>封装
时间: 2024-03-05 17:49:22 浏览: 179
Java实现分页查询
好的,以下是Java代码示例:
```java
public class UserDao {
// 数据库连接等代码省略...
public PageResult<User> getUserList(int pageNum, int pageSize) {
PageResult<User> result = new PageResult<>();
List<User> userList = new ArrayList<>();
int total = 0;
try {
// 计算分页参数
int start = (pageNum - 1) * pageSize;
int end = start + pageSize;
// 执行 SQL 查询语句
String sql = "SELECT * FROM user LIMIT ?, ?";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, start);
pstmt.setInt(2, pageSize);
ResultSet rs = pstmt.executeQuery();
// 解析查询结果并封装成 PageResult
while (rs.next()) {
User user = new User();
user.setId(rs.getInt("id"));
user.setName(rs.getString("name"));
user.setAge(rs.getInt("age"));
userList.add(user);
}
rs.close();
// 查询总记录数
sql = "SELECT COUNT(*) FROM user";
rs = conn.createStatement().executeQuery(sql);
if (rs.next()) {
total = rs.getInt(1);
}
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
result.setPageNum(pageNum);
result.setPageSize(pageSize);
result.setTotal(total);
result.setData(userList);
return result;
}
}
```
上面的代码中,我们通过传入 pageNum 和 pageSize 参数来实现分页查询;使用 PreparedStatement 预编译 SQL 语句,避免 SQL 注入攻击;使用 PageResult 封装查询结果,便于传递分页信息和查询结果。
阅读全文