首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >避免JDBC查询中的CheckStyle幻数错误

避免JDBC查询中的CheckStyle幻数错误
EN

Stack Overflow用户
提问于 2010-04-02 03:08:53
回答 2查看 3K关注 0票数 9

我正在为班级做一个小组项目,我们正在试用CheckStyle。

我对Java相当满意,但在此之前从未接触过JDBC或做过任何数据库工作。

我想知道是否有一种优雅的方法来避免preparedStatement调用中的幻数错误,请考虑:

代码语言:javascript
复制
        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可以吗?这会让我转而引用列名吗?这是理想的吗?等等。

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-04-02 04:34:54

创建一个实用方法,该方法执行以下操作:

代码语言:javascript
复制
public static void setValues(PreparedStatement preparedStatement, Object... values) throws SQLException {
    for (int i = 0; i < values.length; i++) {
        preparedStatement.setObject(i + 1, values[i]);
    }
}

并按如下方式使用它:

代码语言:javascript
复制
setValues(preparedStatement, title, info, genre, youtube);

代码语言:javascript
复制
Object[] values = {
    title, info, genre, youtube
};

setValues(preparedStatement, values);

有关基本JDBC编码的更多“最佳实践”,可以在this article中找到。

希望这能有所帮助。

票数 13
EN

Stack Overflow用户

发布于 2012-11-01 22:05:44

我建议即使你不使用Spring,也可以尝试使用NamedParameterJdbcTemplate。有关如何使用http://www.dzone.com/tutorials/java/spring/spring-named-parameter-jdbc-template.html的教程,请查看它。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2562943

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档