Избежание ошибок магического числа CheckStyle в запросах JDBC

Я работаю над групповым проектом для класса, и мы пробуем CheckStyle.

Я довольно удобен с Java, но никогда не касался JDBC или не делал никакой работы с базой данных до этого.

мне было интересно, есть ли элегантный способ избежать ошибок magic number в вызовах 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 или около того в список игнорирования для магических чисел, но я было интересно, есть ли лучший способ вставить эти значения в оператор. Я также прошу вас о любом другом совете, который приходит на ум, видя этот код, я хотел бы избежать развития каких-либо неприятных привычек, например, должен ли я использовать заявление или PreparedStatement в порядке? Это позволит мне вместо этого ссылаться на имена столбцов? Это идеал? так далее...

спасибо!

2 ответов


создать служебный метод, который делает что-то вроде этого:

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 можно найти в в этой статье.

надеюсь, что это помогает.


Я бы предложил, чтобы даже если вы не используете Spring, попробуйте использовать NamedParameterJdbcTemplate вместо. Взгляните на http://www.dzone.com/tutorials/java/spring/spring-named-parameter-jdbc-template.html для учебника о том, как его использовать.