UPDATE данных при наличии ID

Корректен ли такой способ обновления данных в таблице? INSERT происходит в том случае если нет ID, а UPDATE если есть ID.

    @Override
public void createTable() throws SQLException {
    super.executeSQL(
            "CREATE TABLE IF NOT EXISTS pupils(" +
            "id BIGINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY," +
            "name NVARCHAR(255) NOT NULL," +
            "surname NVARCHAR(255) NOT NULL" +
            "CONSTRAINT uc UNIQUE (id,name,surname))",
            "Создана таблица " + tableName);
}

    @Override
public Pupil save(Pupil obj) throws SQLException {
   if(obj.getId() == 0) {
        try (PreparedStatement preparedStatement = connection.prepareStatement("INSERT INTO pupils (name,surname) VALUES (?,?)")) {
            preparedStatement.setString(1, obj.getName());
            preparedStatement.setString(2, obj.getSurname());
            preparedStatement.executeUpdate();
            System.out.println("Запись добавлена" + " " + obj.getName() + " " + obj.getSurname());
        }
    }
        else {
        try (PreparedStatement preparedStatement = connection.prepareStatement("UPDATE pupils SET name = ?, surname = ? WHERE id = ?")) {
            preparedStatement.setString(1, obj.getName());
            preparedStatement.setString(2, obj.getSurname());
            preparedStatement.setLong(3, obj.getId());
            preparedStatement.executeUpdate();
            System.out.println("Запись обновлена");
        }
    }
    return obj;
}

Вот так создаются объекты

Pupil onePupil = new Pupil("Oleg223", "Dawvidow");
Pupil twoPupil = new Pupil("Olesia", "Kisel");

Затем делается INSERT

dataBase.pupilsTable.save(onePupil);
dataBase.pupilsTable.save(twoPupil);

Затем в первом объекте добавляю ID второй остается неизменным.

Pupil onePupil = new Pupil(1,"Oleg2234", "Dawvidow");
Pupil twoPupil = new Pupil("Olesia", "Kisel");

Вывод при INSERT

Запись добавлена Oleg223 Dawvidow
Запись добавлена Olesia Kisel
1 Oleg223 Dawvidow 
2 Olesia Kisel 

Вывод при UPDATE

Запись обновлена
Запись добавлена Olesia Kisel
1 Oleg2234 Dawvidow 
2 Olesia Kisel 
3 Olesia Kisel 

Ответы (0 шт):