проблема выполнить действие с обработчиком базы данных в java - PullRequest
0 голосов
/ 27 января 2020

Я борюсь с отладкой, почему моя программа останавливается в указанной строке c, я пытался понять, если это проблема с созданием таблицы или оператора, но консоль не выдает мне никакой ошибки, и все же программа просто застрял после запуска этой функции:

 @FXML
    private void loadIssueOperation(ActionEvent event) {
        String memberID = memberIdInput.getText();
        String bookID = bookIdInput.getText();

        Alert confAlert = new Alert(Alert.AlertType.CONFIRMATION);
        confAlert.setTitle("Confirm New Opperation");
        confAlert.setHeaderText(null);
//TASK1 
        confAlert.setContentText("Are you sure about issue the book "+bookName.getText()+
                "\n to "+memberName.getText()+"?");

        Optional<ButtonType> response = confAlert.showAndWait();
        if(response.get()==ButtonType.OK){
            String insertStr = "INSERT INTO ISSUE(memberID,bookID) VALUES("
                    + "'" + memberID + "',"
                    + "'" + bookID + "')";
            String updateStr = "UPDATE BOOK SET isAvail = false WHERE id = '"+bookID+"'";
            System.out.println(insertStr+" and "+updateStr);

            if(dataBaseHandler.execAction(insertStr) && dataBaseHandler.execAction(updateStr)){
                    Alert successAlert = new Alert(Alert.AlertType.INFORMATION);
                    successAlert.setTitle("Success");
                    successAlert.setHeaderText(null);
                    successAlert.setContentText("Complete");
                    successAlert.showAndWait();
                }else{
                    Alert failedAlert = new Alert(Alert.AlertType.ERROR);
                    failedAlert.setTitle("Failed");
                    failedAlert.setHeaderText(null);
                    failedAlert.setContentText("Issue Operation Failed");
                    failedAlert.showAndWait();
                }
        }else{
            Alert cancelAlert = new Alert(Alert.AlertType.INFORMATION);
            cancelAlert.setTitle("Canceled");
            cancelAlert.setHeaderText(null);
            cancelAlert.setContentText("Issue Operation Canceled");
            cancelAlert.showAndWait();
        }
    }

таблица, которую я пытался вставить и обновить, выглядит так:

 void setupIssueTable(){
       String TABLE_NAME="ISSUE";
       try {
           stmt = conn.createStatement();
           DatabaseMetaData dbm = conn.getMetaData();
           ResultSet tables = dbm.getTables(null, null, TABLE_NAME.toUpperCase(), null);
           if(tables.next()){
               System.out.println("Table "+ TABLE_NAME + "Already exist, ready for go!");
           }else{
               stmt.execute("CREATE TABLE "+ TABLE_NAME + "("
               + "       bookID varchar(200) primary key,\n"
               + "       memberID varchar(200),\n"
               + "       issueTime timestamp default CURRENT_TIMESTAMP,\n"
               + "       renew_Count integer default 0,\n"
               + "       FOREIGN KEY (bookID) REFERENCES BOOK(id),\n"
               + "       FOREIGN KEY (memberID) REFERENCES MEMBER(id)\n"
               + " )");
           }

       } catch (SQLException e) {
           System.err.println(e.getMessage()+".......setupDatabase");
       }finally{
       }
   }

есть ли проблемы с кодом? Я новичок в java

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...