2010-04-01 41 views
9

我正在爲類的組項目工作,我們正在嘗試CheckStyle。在JDBC查詢中避免CheckStyle幻數錯誤

我對Java很滿意,但在此之前從未接觸過JDBC或完成過任何數據庫工作。

我想知道是否有避免幻數錯誤在preparedStatement時調用一個優雅的方式,可以考慮:

 preparedStatement = connect.prepareStatement("INSERT INTO shows " 
       + "(showid, showtitle, showinfo, genre, youtube)" 
       + "values (default, ?, ?, ?, ?);"); 
     preparedStatement.setString(1, title); 
     preparedStatement.setString(2, info); 
     preparedStatement.setString(3, genre); 
     preparedStatement.setString(4, youtube); 
     result = preparedStatement.executeUpdate(); 

的方法了setString得到標記爲神奇數字,到目前爲止,我剛剛添加的數字3-10對於幻數的忽略列表,但我想知道是否有更好的方法來將這些值插入到聲明中。我也懇求你提供任何其他的建議,想到看到這些代碼,我想避免發展任何討厭的習慣,例如我應該使用Statement還是PreparedStatement罰款?請問我可以參考列名嗎?那是理想嗎? etc ...

謝謝!

+0

作爲一個側面提示,在獲取數據的同時知道如何避免幻數也是有用的 - 也就是'getString()'等。 – 2013-12-12 15:52:24

回答

12

創建這確實是這樣的實用方法:

public static void setValues(PreparedStatement preparedStatement, Object... values) throws SQLException { 
    for (int i = 0; i < values.length; i++) { 
     preparedStatement.setObject(i + 1, values[i]); 
    } 
} 

而且按如下方式使用它:

setValues(preparedStatement, title, info, genre, youtube); 

Object[] values = { 
    title, info, genre, youtube 
}; 

setValues(preparedStatement, values); 

更多的 「最佳做法」 關於基本的JDBC編碼可以在this article中找到。

希望這會有所幫助。

+0

非常好,非常感謝! – Dan 2010-04-02 03:48:17