2016-04-26 206 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被生成。