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

Dan*_*Dan 9 jdbc checkstyle

我正在为课堂上的小组项目工作,我们正在尝试CheckStyle.

我对Java非常熟悉,但在此之前从未接触过JDBC或完成任何数据库工作.

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

        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();
Run Code Online (Sandbox Code Playgroud)

该方法了setString得到标记为神奇数字,到目前为止,我刚添加的数字3-10左右忽略列表为神奇数字,但我不知道是否有更好的方法去了解这些插入值到语句.我还恳求你看到任何其他的建议,我想避免发现任何讨厌的习惯,例如我应该使用Statement还是PreparedStatement?那会让我参考列名吗?那是理想的吗?等等...

谢谢!

Bal*_*usC 13

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

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

并使用如下:

setValues(preparedStatement, title, info, genre, youtube);
Run Code Online (Sandbox Code Playgroud)

要么

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

setValues(preparedStatement, values);
Run Code Online (Sandbox Code Playgroud)

有关基本JDBC编码的更多"最佳实践"可以在本文中找到.

希望这可以帮助.