2013-10-20 68 views
-1

请老兄,我一直在这一整天试图让我的managerCorner GUI基于这个认证来执行。我使用了正确的值,即数据库中的值来检查managerLogin()方法是否授予我对managerCorner GUI界面的访问权限,但它没有奏效。有一个LoginInterface类具有处理用户认证的表单。我试图用正确的值登录,但是如果(rset.next())...没有调用managerCorner GUI类,则没有异常或错误被标记掉!这是为什么?这个验证码有什么错误?

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); 
    } 
}} 
+0

请格式化您的代码。这段代码会让下一位给你一个性能评估的程序员看起来很杂乱。 – tbodt

+1

你在哪里设置查询语句参数。 –

回答

0

您的问题是在这两条线:

new managerCorner(); 
managerCorner.setDefaultLookAndFeelDecorated(true); 

在所有的情形产生,这是不是你想要做什么。它甚至不会编译。你的,如果你写这是正确的一个更好的机会:

corner = new managerCorner(); 
corner.setDefaultLookAndFeelDecorated(true); 

我不能完全肯定,这将工作,但我没有足够的信息,以确保它。


由于莫里森昌指出,也没有代码来设置参数为PreparedStatement。也许这也是一个问题?