我是JDBC的新手,对语法有点困惑。假设我想创建多个查询(或SQL中的视图)并引用视图来进行后续查询,如何使用预准备语句执行此操作?
例如:
PreparedStatement first = conn.PreparedStatement("SELECT * FROM clients);
first.execute()
问题现在我可以通过' PreparedStatement'参考'第一'在我要在下面创建的查询中?
PreparedStatement second = conn.PreparedStatement("SELECT * FROM first WHERE age > 10);
答案 0 :(得分:0)
JDBC最简单的模式是:
try (PreparedStatement first = conn.prepareStatement(
"SELECT * FROM clients WHERE age BETWEEN ? AND ?")) {
first.setInt(1, 80);
first.setInt(2, 140);
try (ResultSet rs = first.executeQuery()) {
while (rs.next()) {
int age = rs.getInt("age");
...
}
}
}
此语法:try-with-resources关闭first
和rs
,即使您返回或引发异常也是如此。
声明:第一和第二是完全独立的。
不需要为整个数据库会话保持准备好的语句。
执行最好由SELECT executeQuery
触发,UPDATE / INSERT executeUpdate
触发,不产生ResultSet。