我正在上课一个小组项目,我们正在尝试CheckStyle.
我对Java非常满意,但从未触及到JDBC或在此之前完成任何数据库工作.
我想知道如果有一个优雅的方式来避免在准备语句电话中出现错误的数字错误,请考虑:
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吗?那会让我参考列名吗?那是理想吗等等…
谢谢!
解决方法
创建一个实用的方法,这样做:
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,youtube);
要么
Object[] values = { title,youtube }; setValues(preparedStatement,values);
关于基本JDBC编码的更多“最佳实践”可以在this article中找到.
希望这可以帮助.