练习使用PreparedStatement完成带条件的查询并展示。
时间: 2024-03-02 20:49:30 浏览: 41
好的,我可以帮你回答这个问题。
使用PreparedStatement可以避免SQL注入攻击,同时也能提高执行效率。下面是一个示例代码,展示如何使用PreparedStatement完成带条件的查询:
```java
String name = "Tom"; // 假设要查询名字为Tom的用户
int age = 18; // 假设要查询年龄为18岁的用户
// 使用占位符?来占位
String sql = "SELECT * FROM user WHERE name = ? AND age = ?";
try (Connection conn = DriverManager.getConnection(url, username, password);
PreparedStatement stmt = conn.prepareStatement(sql)) {
// 设置占位符的值
stmt.setString(1, name);
stmt.setInt(2, age);
// 执行查询操作
try (ResultSet rs = stmt.executeQuery()) {
// 遍历结果集
while (rs.next()) {
// 处理结果
}
}
} catch (SQLException e) {
e.printStackTrace();
}
```
在这个示例中,我们使用了两个占位符来代替查询条件,然后在设置占位符的值时,使用了PreparedStatement提供的setXXX()方法,其中XXX表示数据类型。最后执行查询操作时,PreparedStatement会自动将占位符替换成对应的值,从而完成查询。
希望这个示例能够帮助你练习使用PreparedStatement完成带条件的查询。
阅读全文