我正在为班级做一个小组项目,我们正在试用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可以吗?这会让我转而引用列名吗?这是理想的吗?等等。
谢谢!
发布于 2010-04-02 04:34:54
创建一个实用方法,该方法执行以下操作:
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中找到。
希望这能有所帮助。
发布于 2012-11-01 22:05:44
我建议即使你不使用Spring,也可以尝试使用NamedParameterJdbcTemplate。有关如何使用http://www.dzone.com/tutorials/java/spring/spring-named-parameter-jdbc-template.html的教程,请查看它。
https://stackoverflow.com/questions/2562943
复制相似问题