Java中的AS400用户名和密码验证,(输入错误凭据时出现问题)

t5fffqht  于 2023-01-11  发布在  Java
关注(0)|答案(2)|浏览(156)

因此,当我介绍了一个错误的用户名和密码,它应该只显示我的消息:"Intente Otra vez"
下面是我的代码:

try {
            String usuario=txtUsu.getText();
            String password=contrasena.getText();
            ModeloExcel modeloE = new ModeloExcel();
            //loginAS400       
            if(modeloE.loginAS400( usuario, password)==true){
                VistaExcel vistaE = new VistaExcel(usuario, password);
                ControladorExcel contraControladorExcel = new ControladorExcel(vistaE, modeloE);
                try {
                    modeloE.loginAS400(usuario, password);
               } catch (SQLException ex) {
                    Logger.getLogger(VistaLogin.class.getName()).log(Level.SEVERE, null, ex);
                } catch (IOException ex) {
                    Logger.getLogger(VistaLogin.class.getName()).log(Level.SEVERE, null, ex);
                }
                vistaE.setVisible(true);
                vistaE.setLocationRelativeTo(null);
                this.setVisible(false);
            } else if(modeloE.loginAS400( usuario, password)==false){
                JOptionPane.showMessageDialog(null,"Intente otra vez");
                txtUsu.setText("");
                System.exit(0);
            }
        } catch (SQLException ex) {
            Logger.getLogger(VistaLogin.class.getName()).log(Level.SEVERE, null, ex);
        } catch (IOException ex) {
            Logger.getLogger(VistaLogin.class.getName()).log(Level.SEVERE, null, ex);
        }

和登录名AS400:

public static boolean loginAS400(String usuario, String contrasena) throws SQLException, IOException {
        String serverAS400 = "ip"; 
        Driver d=new com.ibm.as400.access.AS400JDBCDriver();
        DriverManager.registerDriver(d);
        Connection connectionAS400 = DriverManager.getConnection("jdbc:as400://" + serverAS400, usuario, contrasena);
        if (connectionAS400!=null) {
            return true;
        } else {
            return false;
        }
    }

It shows me this...
但是正如你所看到的,它向我显示了as400登录错误。并且在每次取消或退出后都会不断显示。只有在几次取消后,程序才会关闭并让我返回到我项目中的登录。
所以我想知道是否有什么我可以做的,使它不显示我的AS400程序登录。

efzxgjgh

efzxgjgh1#

查看https://www.ibm.com/docs/en/i/7.3?topic=ssw_ibm_i_73/rzahh/javadoc/com/ibm/as400/access/doc-files/JDBCProperties.htm的文档,我发现提示符JDBC属性应该可以完成这个任务。
在JDBC URL上使用提示符=false,即

Connection connectionAS400 = DriverManager.getConnection("jdbc:as400://" + serverAS400+";prompt=false', usuario, contrasena);
pgx2nnw8

pgx2nnw82#

Java中的AS400用户名和密码验证。(输入错误凭据时出现问题)
看起来您没有收到错误消息是因为您的代码执行从未进入该代码块,因为类型Connection的connectionAS400变量不为空,即使用户不正确,您也需要检查connectionAS400中包含的负值。
getConnection返回一个url或异常,你可以在这里查看开发者参考:DriverManager Java开发人员参考

相关问题