Невозможно выполнить подготовленное заявление от DAO - PullRequest
1 голос
/ 03 мая 2019

Так что в настоящее время я пытаюсь получить первичный ключ с автоинкрементом, следуя этому ответу Первичный ключ из вставленной строки jdbc? но, видимо, программа не может даже достичь этой строки, и ошибка появилась в строке ps.executeQuery() после отладки программы, ошибка, которую она отображала, была "executeQuery" is not a known variable in the current context. этой строки что не имеет смысла для меня. Так как мне пройти это препятствие?

public static int createNewLoginUsers(String newPassword, String newRole) throws SQLException{
        Connection conn = DBConnection.getConnection();
        Statement st = null;
        ResultSet rs = null;
        PreparedStatement ps = null;
        int id = 0;

        try{
            String sql = "INSERT into Login(password, role) VALUES(?,?)";           
            ps = conn.prepareStatement(sql);
            ps.setString(1, newPassword);
            ps.setString(2, newRole);
            ps.executeUpdate();

            st = conn.createStatement();
            rs = st.executeQuery("SELECT * from Login");

            rs.last();
            System.out.println(rs.getInt("username"));
            id = rs.getInt("username");

            rs.close();


        } finally{
            try{
            conn.close();
        }catch(SQLException e){
            System.out.println(e);
        }

        }
        return id;

    }

Часть метода, которая вызывает метод createNewLoginUsers

if(newPasstxtfld.getText().equals(retypeNewPasstxtfld.getText())){
                    //update into database
                    try {
                    int username = CreateUsersDAO.createNewLoginUsers( (String) newUserRoleBox.getSelectionModel().getSelectedItem(), newPasstxtfld.getText());
                    Alert confirmation = new Alert(Alert.AlertType.INFORMATION);
                    confirmation.setHeaderText("New User Details has been created. Your username is " + username);
                    confirmation.showAndWait();
                } catch (SQLException e) {

                }

EDIT: Добавлена ​​таблица баз данных, и она находится в приведенной ниже ссылке https://imgur.com/a/Dggp2kc и отредактируйте коды вместо двух блоков try одним способом. Я поместил их в другой аналогичный метод, обновил мои коды до текущего, который у меня есть.

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