2016-10-01 2 views
0

Мы, очевидно, застряли в программе входа в систему, так как не читаем имя пользователя и пароль. Он работает, хотя имя пользователя и пароль неверны.Java SQL - Неправильное чтение UserInput (имя пользователя и пароль)

ЭКСПЕРИМЕНТАЛЬНАЯ РАБОТА КОД (входит в даже если регистрационные данные некорректны):

JButton btnLogin = new JButton("Log-In"); 
    btnLogin.addActionListener(new ActionListener() { 
     public void actionPerformed(ActionEvent arg0) { 



      Connection conn; 
      java.sql.PreparedStatement ps; 

       try{ 
        conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/tupaness","ivanaldwin","frankscanteen"); 
        Statement mystmt = conn.createStatement(); 
        ps = conn.prepareStatement("SELECT * FROM 'admin' WHERE 'uname' = ? AND 'pass' = ?"); 


        String user = uname.getText(); // Collecting the input 
        char[] password = pass.getPassword(); // Collecting the input 
        String pwd = String.valueOf(pass); // converting from array to string 
        if(validate_login(user,pwd)){ 

       /* ps.setString(1, uname.getText()); 
        ps.setString(2, String.valueOf(pass.getPassword())); 
        ResultSet result = ps.executeQuery(); 



        if(result.next()){ 
         JOptionPane.showMessageDialog(null, "Login Success"); 

         TupanessHome th = new TupanessHome(); 
        } 
        */ 
        } 
       }catch(Exception e) { 
         JOptionPane.showMessageDialog(null, "An Error has been Detected: \n" + e); 
       }TupanessHome th = new TupanessHome(); 
     } 

     private boolean validate_login(String user, String pwd) { 

      try{   
        Class.forName("com.mysql.jdbc.Driver"); // MySQL database connection 
        Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/tupaness","ivanaldwin","frankscanteen");  
        PreparedStatement pst = conn.prepareStatement("Select * from admin where uname=? and pass=?"); 
        pst.setString(1, user); 
        pst.setString(2, pwd); 
        ResultSet rs = pst.executeQuery();       
        if(rs.next()){    
         return true;     
        } 
        else 
         return false;    
       } 
       catch(Exception e){ 
        e.printStackTrace(); 
        return false; 
       }  



     } 
    }); 
    btnLogin.setBounds(65, 117, 89, 23); 
    login.getContentPane().add(btnLogin); 

ДОЛЖНА БЫТЬ КОД (косяк работа это, говорит, у нас есть какие-то ошибки синтаксиса)

JButton btnLogin = new JButton("Log-In"); 
    btnLogin.addActionListener(new ActionListener() { 
     public void actionPerformed(ActionEvent arg0) { 
      Connection conn; 
      java.sql.PreparedStatement ps; 

       try{ 
        conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/tupaness","ivanaldwin","frankscanteen"); 
        ps = conn.prepareStatement("SELECT * FROM 'admin' WHERE 'uname' = ? AND 'pass' = ?"); 
        ps.setString(1, uname.getText()); 
        ps.setString(2, String.valueOf(pass.getPassword())); 
        ResultSet result = ps.executeQuery(); 

        if(result.next()){ 
         JOptionPane.showMessageDialog(null, "Login Success"); 

         TupanessHome th = new TupanessHome(); 
        } 

       }catch(Exception e) { 
         JOptionPane.showMessageDialog(null, "An Error has been Detected: \n" + e); 
       } 
     } 
    }); 
    btnLogin.setBounds(65, 117, 89, 23); 
    login.getContentPane().add(btnLogin); 

EDIT

Нам удалось исправить ошибку в столбце, но он по-прежнему обыкновению, войдите

ps = conn.prepareStatement("SELECT * FROM admin WHERE 'uname' = ? AND 'pass' = ?"); 

(заявление было сделано из 'должен быть CODE')

+0

У вас есть кавычки вокруг таблицы и имена столбцов в ваш запрос SELECT. Возможно, есть и другие ошибки, но начните с исправления запроса. –

+0

Хорошо, мы начнем находить эти ошибки, спасибо^_^ –

ответ

0
"SELECT * FROM 'admin' WHERE 'uname' = ? AND 'pass' = ?" 

Должно быть

"SELECT * FROM `admin` WHERE `uname` = ? AND `pass` = ?" 

Или даже

"SELECT * FROM admin WHERE uname = ? AND pass = ?" 
+0

ЭТО ПОЛНОСТЬЮ РАБОТАЕТ БЛАГОДАРЯ YOOOOOOOOOOOOOOOU –

Смежные вопросы