Так что в настоящее время я пытаюсь получить первичный ключ с автоинкрементом, следуя этому ответу
Первичный ключ из вставленной строки 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 одним способом. Я поместил их в другой аналогичный метод, обновил мои коды до текущего, который у меня есть.