user_name) throws IOException, SQLException {
String SQL = """
UPDATE members SET first_name = ? AND last_name = ? AND user_name = ? WHERE id = ?;
""";
try (Connection connection = new JdbcConnection().CreateConnect();
PreparedStatement preparedStatement = connection.prepareStatement(SQL)) {
preparedStatement.setInt(4, id);
preparedStatement.setString(1, first_name);
preparedStatement.setString(2, last_name);
preparedStatement.setString(3, user_name);
try {
return preparedStatement.executeUpdate() != 0;
} catch (SQLException e) {
return false;
}
}
}
возник вопрос, если допустим у пользователя один из параметров будет совпадать, то будет ли ошибка?
Зависит от структуры базы, вестимо
Не понятно только что значит один из параметров совпадать… у пользователя
одно из полей в бд например было пустое поле и я обновил на пустое поле постгрес
1) ну проверь в базе, исполнив запрос 2) а почему должно?
Я бы предложил написать тест на h2
хм, и в правду. в голове держалось что если обновления нет, то выдаст ошибку.
Зачем на h2-то
Юнит тесты, на виртуальный базе, true path
юнит тесты то все равно придется писать
А потом люди пишут юнит-тесты и удивляются, что они не работают, потому что база не та...
Ну ты же не будешь их писать с реальной базой
Почему, будешь Тестконтейнеры и вперёд
Не встречал такой проблемы
я пропишу их стандартно
Ну значит не встречал ни одного проекта с содержательной работой с SQL-базой, бывает
:) ну да. Конечно). Можешь тогда показать пример.
Ну ты почитай про список vendor-specific фич и синтаксиса в постгре, оракле Начнем с какого-нибудь завалящего SIMILAR TO в постгресе
https://stackoverflow.com/questions/60724961/h2-create-unique-index-with-two-columns Вон ещё пример Ты не можешь менять даже нормальные SQL-базы между собой не глядя, уж тем более не можешь использовать вместо них H2
Ты H2 можешь диалект посгре указать. У нас более 100 тестов для обертки для Hibernates и проблем нет)
H2-"диалект" не обеспечивает и приблизительно полной совместимости с реальным постгре, только ограниченное подмножество
Обсуждают сегодня