Java SQL Server: удаление данных

В этом уроке вы узнаете, как удалить строку из таблицы в программе на Java.

Это руководство начинается с того места, где закончилось руководство по обновлению данных в SQL Server из Java.

Удаление данных

Шаг 1. Определите новый метод в классе AuthorDB, который удаляет автора по идентификатору:

public void delete(int authorId) throws DBException {
  var sql = "DELETE FROM authors WHERE AuthorID=?";
  try(var statement = connection.prepareStatement(sql)) {
    // Bind values to parameters
    statement.setInt(1, authorId);
    // Execute the delete statement
    statement.executeUpdate();
  } catch(SQLException e) {
    throw new DBException(e.getMessage());
  }
}

Как это работает.

Сначала определите метод delete(), который принимает идентификатор автора и выдает исключение DBException, если при удалении автора возникает ошибка:

public void delete(int authorId) throws DBException {

Во-вторых, создайте оператор DELETE, который удаляет строку из таблицы Authors на основе идентификатора автора:

var sql = "DELETE FROM authors WHERE AuthorID=?";

В-третьих, создайте подготовленный объект оператора:

try(var statement = connection.prepareStatement(sql)) {

В-четвертых, привяжите значение authorId к параметру оператора:

statement.setInt(1, authorId);

В-пятых, выполните оператор DELETE, вызвав метод executeUpdate() объекта PreparedStatement:

statement.executeUpdate();

Наконец, создайте новое исключение DBException, если во время обновления возникнет ошибка:

} catch(SQLException e) {
  throw new DBException(e.getMessage());
}

Шаг 2. Измените метод main() класса Main, чтобы удалить автора с идентификатором 1:

import java.sql.SQLException;
public class Main {
    public static void main(String[] args) {
        try(var connection = SQLServerConnection.connect()) {
            var authorDB = new AuthorDB(connection);
            authorDB.delete(1);
        } catch(SQLException | DBException e) {
            System.err.println(e.getMessage());
        }
    }
}

Как это работает.

Сначала подключитесь к SQL Server:

try(var connection = SQLServerConnection.connect()) {

Во-вторых, создайте объект AuthorDB:

var authorDB = new AuthorDB(connection);

В-третьих, удалите автора с идентификатором 1:

authorDB.delete(1);

Наконец, отобразите ошибку, если автор не существует или обновление не удалось:

} catch(SQLException | DBException e) {
  System.err.println(e.getMessage());
}

Шаг 3. Запустите SQL Server Management Studio, подключитесь к SQL Server и выполните следующий запрос для получения данных об авторе с идентификатором 1:

SELECT * FROM Authors
WHERE AuthorId = 1;

Выход:

AuthorID | FirstName | LastName | BirthDate
---------+-----------+----------+-----------
1        | John      | Doe      | 1990-12-31
(1 row)

Шаг 4. Запустите программу Java для удаления автора с идентификатором 1.

Шаг 5. Повторите запрос для проверки удаления:

SELECT * FROM Authors
WHERE AuthorId = 1;

Выход:

AuthorID | FirstName | LastName | BirthDate
---------+-----------+----------+-----------
(0 rows affected)

В выводе отображается пустой набор результатов, что означает, что программа Java успешно удалила автора с идентификатором 1.

Загрузите исходный код проекта

Загрузите исходный код проекта

Краткое содержание

  • Вызовите метод executeUpdate() объекта PreparedStatement, чтобы выполнить оператор DELETE для удаления строки из таблицы в программе Java.
Мирослав С.

Автор статей, ИБ-специалист