Набор результатов Java не работает с предварительно написанным сценарием SQL - PullRequest
0 голосов
/ 29 апреля 2018

Моя Java-программа не будет отображать или работать со значениями SQL, которые уже были помещены в таблицу до работы с ней в Eclipse.

Я имею в виду, что я могу добавить значения в таблицу, и она сообщит мне, добавляю ли я те же значения снова, однако она заблокируется, когда я пытаюсь использовать значение, которое уже было в таблице, которую я вставлять через SQL.

Я в недоумении для слов, и я не могу понять, почему это происходит. Мне просто нужно, чтобы сказать мне, что значение существует для значений, которые уже были там. Вот мой код:

public void addCourse(Statement st){   //**********This function adds a course to the database.
        String courseCode, courseTitle;
        int entriesChanged;   


        try {
            System.out.println("Please enter a course code you would like to add: ");
            courseCode = scan.next().toUpperCase();
            ResultSet rs = st.executeQuery("select * from Course where code = '" + courseCode + "'");

            if (rs.next()) {
                System.out.println("This course code already exists, please 
try again.");
            } else {
                System.out.println("Please enter the title for the course: ");
                courseTitle = scan.next().toUpperCase();
                entriesChanged = st.executeUpdate("Insert into Course values 
('" + courseCode + "','" + courseTitle + "')");
                System.out.println("You just added " + entriesChanged + " 
entries to the course list.");
            }
            rs.close();  //**********Closed the result set in this function.
        } catch (SQLException e) {
            System.out.println("There was an error during runtime, Error: " + 
e.getMessage());
        }

Вот мое заявление о соединении, которым я делюсь через класс Driver.java:

try (Connection conn 

=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe",
"system", Chicken1") //connect oracle
                ) { 
Statement st = conn.createStatement();

Когда я сказал «он блокируется», я имел в виду, что он просит пользователя ввести название курса, как только вы введете код курса, который уже существовал в предварительно написанной таблице SQL, и затем он просто позволяет вам ввести бесконечно в консоли без продолжения программы.

Однако, если я добавлю курс, который НЕ существует в предварительно записанной таблице, он добавит его в базу данных и не позволит мне повторно ввести код курса, который я уже ввел.

Однако, когда я пытаюсь заставить программу помешать мне ввести код курса, который существует в предварительно написанной таблице SQL, то есть когда он «блокируется».

...