用java写一个单表分页查询
时间: 2024-05-02 09:19:00 浏览: 89
以下是使用Java编写的单表分页查询示例:
```java
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
public class PaginationDemo {
public static void main(String[] args) {
int currentPage = 2; // 当前页码
int pageSize = 10; // 每页记录数
String sql = "SELECT * FROM users LIMIT ?, ?"; // 查询SQL语句
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
// 加载JDBC驱动程序
Class.forName("com.mysql.cj.jdbc.Driver");
// 获取数据库连接对象
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "123456");
// 创建PreparedStatement对象
pstmt = conn.prepareStatement(sql);
// 设置分页查询参数
pstmt.setInt(1, (currentPage - 1) * pageSize);
pstmt.setInt(2, pageSize);
// 执行查询操作
rs = pstmt.executeQuery();
// 封装查询结果
List<User> userList = new ArrayList<User>();
while (rs.next()) {
User user = new User();
user.setId(rs.getInt("id"));
user.setUsername(rs.getString("username"));
user.setPassword(rs.getString("password"));
user.setAge(rs.getInt("age"));
userList.add(user);
}
// 输出查询结果
for (User user : userList) {
System.out.println(user);
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
// 关闭资源
try {
if (rs != null) {
rs.close();
}
if (pstmt != null) {
pstmt.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
class User {
private int id;
private String username;
private String password;
private int age;
// 省略getter/setter方法和toString方法
}
```
说明:
- 该示例使用MySQL数据库,并且使用了MySQL的LIMIT子句实现分页查询;
- 通过设置PreparedStatement对象的参数实现分页查询;
- 使用了JavaBean封装查询结果,并且使用List集合保存多条查询结果;
- 在finally块中关闭了数据库资源。
阅读全文