JDBC编写的语句/参考另一个准备好的语句编写

时间:2016-04-26 15:28:02

标签: java mysql jdbc

我是JDBC的新手,对语法有点困惑。假设我想创建多个查询(或SQL中的视图)并引用视图来进行后续查询,如何使用预准备语句执行此操作?

例如:

PreparedStatement first = conn.PreparedStatement("SELECT * FROM clients);
first.execute()

问题现在我可以通过' PreparedStatement'参考'第一'在我要在下面创建的查询中?

PreparedStatement second = conn.PreparedStatement("SELECT * FROM first WHERE age > 10);

1 个答案:

答案 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关闭firstrs,即使您返回或引发异常也是如此。

声明:第一和第二是完全独立的。

不需要为整个数据库会话保持准备好的语句。

执行最好由SELECT executeQuery触发,UPDATE / INSERT executeUpdate触发,不产生ResultSet。