Java 此身份验证代码有什么问题?
伙计们,我花了一整天的时间试图让我的managerCorner GUI基于此身份验证执行。我使用了正确的值,即数据库中的值来检查managerLogin()方法是否授予我访问managerCorner GUI界面的权限,但它没有起作用。有一个LoginInterface类,其表单处理用户身份验证。我已尝试使用正确的值登录,但th if(rset.next())中的managerCorner GUI类。。。不调用,不标记任何异常或错误!为什么会这样Java 此身份验证代码有什么问题?,java,swing,Java,Swing,伙计们,我花了一整天的时间试图让我的managerCorner GUI基于此身份验证执行。我使用了正确的值,即数据库中的值来检查managerLogin()方法是否授予我访问managerCorner GUI界面的权限,但它没有起作用。有一个LoginInterface类,其表单处理用户身份验证。我已尝试使用正确的值登录,但th if(rset.next())中的managerCorner GUI类。。。不调用,不标记任何异常或错误!为什么会这样 public void managerLogin
public void managerLogin(int id, String usn, String pwd) {
try {
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
}
catch(Exception e) {
JOptionPane.showMessageDialog(null, e.getMessage());
}
java.sql.Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/ phoneShopSystem","aknessy", dbLogin.db());
String query = "SELECT managerID, managerUsername, managerPwd"
+ "FROM `manager` WHERE managerID = ? AND managerUsername = ? AND managerPwd = ?";
java.sql.PreparedStatement pst= con.prepareStatement(query,ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
int i = rset.getInt(1);
String u = rset.getString(2);
String p = rset.getString(3);
rset = pst.executeQuery();
if(rset.next()){
if((i == id) && (u.equals(usn)) && (p.equals(pwd))){
new managerCorner();
managerCorner.setDefaultLookAndFeelDecorated(true);
}else{
JOptionPane.showMessageDialog(null, "The User: "+ usn +" With ID "+ id + " \n"
+ "Does Not Exist!", "\nLogin Failed!", JOptionPane.OK_OPTION);
}
rset.close();
con.close();
}catch(SQLException sql){
JOptionPane.showMessageDialog(null, sql.getMessage(),"SQL ERROR!!!",JOptionPane.OK_OPTION);
}
}}
您的问题在于以下两行:
new managerCorner();
managerCorner.setDefaultLookAndFeelDecorated(true);
很可能,这不是你想做的。它甚至不会编译。如果您写下以下内容,则更有可能正确:
corner = new managerCorner();
corner.setDefaultLookAndFeelDecorated(true);
我不完全确定这是否可行,但我没有足够的信息来确定这一点
正如Morrison Chang指出的,也没有代码来设置
PreparedStatement
的参数。也许这也是一个问题?请格式化您的代码。这段代码在下一个给你做性能评估的程序员看来会非常混乱。你在哪里设置查询语句参数。