2015-07-20 66 views
14

如何將變量插入到SQL查詢中?將變量插入到Java的SQL查詢中

這是我迄今爲止...

public String getBugList(int amount) { 
    Connection con = DatabaseConnection.getConnection(); 
    try (PreparedStatement ps = con.prepareStatement("SELECT submitter, report FROM bugs_log ORDER BY id DESC limit)) 
} 

我試圖讓「量」的錯誤列出。所以如果我輸入2,那麼只有前兩位會被列出。

回答

11

試試這個代碼:

public String getBugList(int amount) { 
    Connection con = DatabaseConnection.getConnection(); 
    String query = "SELECT submitter, report FROM bugs_log ORDER BY id DESC limit ?"; 
    try(PreparedStatement ps = con.prepareStatement(query)) { 
     ps.setInt(1, amount); 
    } 
} 
+0

雖然看起來是正確的,但我不能說我是這個答案的粉絲,因爲它不會使用試圖與資源完全適合該語言(和OP使用它)。 – Vulcan

+1

@Vulcan我的公司一直在使用Java 6,直到2周前...我們終於升級到Java 7,但讓我們只是說我一直在編寫代碼,當Jay Gosling還是個年輕人的時候編譯代碼。 –

+0

別忘了'.execute()'你的'ps' ... – glglgl

2

放了?在期望的可變位置。然後,從此API調用變量類型的set方法。

http://docs.oracle.com/javase/7/docs/api/java/sql/PreparedStatement.html

你的情況,你想一個int,所以叫ps.setInt(1,x)。如果你想要多個變量,或者用SQL的話來說就是一個「參數」 - 只需使用多個變量?即可。 PreparedStatement setter方法需要參數index。最大指數等於您在查詢中的?的數量。