2016-04-26 130 views
0

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

例如:

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

问题现在,我可以在我快要下面创建查询通过“PreparedStatement的”参考“第一”?

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

不,你走了。 “PreparedStatement”与视图无关。它当然不会在数据库中创建视图。查找解释基础知识的教程,并通读几遍。 – Kayaman

+0

但是,如何使用由另一个预备语句生成的查询呢?你知道有什么好的教程可以解释这个吗? – cuziluvtosmile

+0

您不使用“由一个准备好的语句生成的查询”。 'PreparedStatements'产生'ResultSets'或插入/更新数据库中的数据。我相信任何教程都可以,只要它是基本的。 – Kayaman

回答

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"); 
      ... 
     } 
    } 
} 

这句法:尝试与 - 资源关闭firstrs,即使您返回或抛出异常。

而陈述:第一和第二是完全独立的。

一个不需要保留为整个数据库会话打开预准备语句。

对于SELECT,执行最好由executeQuery触发,对于UPDATE/INSERT,executeUpdate最好触发,其中没有ResultSet被生成。