Я изучаю, как создать слой данных с помощью JDBC с этим DAO tutorial. Тем не менее, я застрял на этом этапе: PreparedStatement statement = prepareStatement(connection, SQL_UPDATE, false, values);
Почему именно pureStatement используется таким образом?Что означают эти значения/параметры в PreparedStatement?
Буду благодарен за любые объяснения и предложения.
Я просмотрел documentation и искал соответствующие примеры, но не нашел никакого объяснения такой конструкции. Я знаком с выражениями, как это, когда prepareStatement метод вызывается связи объект:
Connection connection = daoFactory.getConnection();
PreparedStatement statement = connection.prepareStatement(SQL);
Но я не понимаю, почему PreparedStatement реализуется как в примере ниже:
public void update(User user) throws DAOException {
if (user.getId() == null) {
throw new IllegalArgumentException("User is not created yet, the user ID is null.");
}
Object[] values = {
user.getEmail(),
user.getFirstname(),
user.getLastname(),
toSqlDate(user.getBirthdate()),
user.getId()
};
try (
Connection connection = daoFactory.getConnection();
PreparedStatement statement = prepareStatement(connection, SQL_UPDATE, false, values);
) {
int affectedRows = statement.executeUpdate();
if (affectedRows == 0) {
throw new DAOException("Updating user failed, no rows affected.");
}
} catch (SQLException e) {
throw new DAOException(e);
}
}
'prepareStatement' - это определенный пользователем метод? Отправьте код этого метода. –
@JitinKodian Я также подумал, что это может быть какой-то определенный пользователем метод. Но не нашли его здесь в [Учебном пособии BalusC:] (http://balusc.omnifaces.org/2008/07/dao-tutorial-data-layer.html) –