加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

避免JDBC查询中的CheckStyle magic number错误

发布时间:2020-12-14 05:31:16 所属栏目:Java 来源:网络整理
导读:我正在上课一个小组项目,我们正在尝试CheckStyle. 我对Java非常满意,但从未触及到JDBC或在此之前完成任何数据库工作. 我想知道如果有一个优雅的方式来避免在准备语句电话中出现错误的数字错误,请考虑: preparedStatement = connect.prepareStatement("INSER
我正在上课一个小组项目,我们正在尝试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中找到.

希望这可以帮助.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读