В этом уроке вы узнаете, как удалить строку из таблицы в программе на 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.