JDB C: Как удалить указанную c запись из таблицы, используя PreparedStatement? - PullRequest
1 голос
/ 30 апреля 2020

Там есть название таблицы «Студент». Запрос состоит в том, чтобы написать функцию, которая говорит пользователю вводить идентификатор студента. Если такой идентификатор найден, удалите эту запись студента, в противном случае выведите «Запись не найдена».

Структура таблицы: id || fullName || пол || Доб

Это мой код. Всякий раз, когда я пытаюсь запустить, он всегда показывает эту ошибку: Значение не установлено для параметра номер 1.

public void deleteStudent() {
        System.out.println("Enter the Student's ID you want to delete: ");
        Scanner sc = new Scanner(System.in);
        int id = sc.nextInt();

        try (
                Connection connect = DriverManager.getConnection(ConnectToProperties.getConnection());
                PreparedStatement ps = connect.prepareStatement("SELECT from Student WHERE id = ?");
                ResultSet rs = ps.executeQuery();
                PreparedStatement psDel = connect.prepareStatement("DELETE from Student WHERE id = ?");
            )

        {       
            ps.setInt(1, id);
            if(rs.next()) {
                psDel.setInt(1, id);
                psDel.executeUpdate();
                System.out.println("Record deleted successfully.");
            } else {
                System.out.println("Record not found.");
            }
        } catch (Exception e) {
            System.out.println(e.getMessage());
        }
    }

1 Ответ

2 голосов
/ 30 апреля 2020

Почему даже SELECT ученик первый? Просто удали это. Пропустить первый запрос Вывод вашей консоли может быть реализован так:

try (PreparedStatement psDel = connect.prepareStatement(
    "DELETE FROM Student WHERE id = ?")
) {
    psDel.setInt(1, id);

    if (psDel.executeUpdate() > 0)
        System.out.println("Record deleted successfully.");
    else
        System.out.println("Record not found.");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...