UPDATE запрос к MySQL из Java

362
03 августа 2017, 23:45

Есть такой метод

String query = "UPDATE table1 SET name = (?), phone = (?) WHERE id = 1";
ConnectionDB conDB = new ConnectionDB();
Connection connect = conDB.geyConnection();
try {
    PreparedStatement preparedStatement = connect.prepareStatement(query);
    preparedStatement.setString(1, this.name);
    preparedStatement.setString(1, this.phone);
    preparedStatement.executeUpdate();
} catch (SQLException e) {
    e.printStackTrace();
}

В данном методе, обновляться будут оба поля, даже если они остались прежними. Просто произойдет перезапись поля новыми значениями. Но это здесь я привел пример с двумя полями, а что делать если полей куча, и в каждом большое количество информации. Отправлять их все, будет наверное плохо для БД, ведь посути, БД будет выполнять бесполезную работу. Как сделать проверку на изменение перед отправкой этого запроса к БД? Если допустим, есть объект который содержит данные этой записи.

User user = User.selectInfo(1);

Оба объекта, естественно, одного класса. Объект user содержит в своих полях значение нужной строки из БД. Их можно сравнивать. Но я чет не пойму, как потом составить запрос, что бы поля которые не изменились, не отправлялись в запросе

READ ALSO
Hibernate mapping saving issue

Hibernate mapping saving issue

У меня есть две проблемных сущности: Первая:

314
Ошибка getRunningServices is deprecated API 26

Ошибка getRunningServices is deprecated API 26

При написани данного кода:

661
LibGDX + JavaFX

LibGDX + JavaFX

Есть у меня идея фикс, сделать редактор(ы) используя базовый интерфейс JavaЯ пробовал 2 варианта этой реализации, но пока не преуспел

317
Java Apache POI (стили текста/свойства ячеек)

Java Apache POI (стили текста/свойства ячеек)

Есть небольшой код на экспорт данных с Jtable в excel

421