2015-08-27 26 views
0
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 
import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.PreparedStatement; 
import java.sql.ResultSet; 
import javax.swing.*; 

public class loginscreen { 


JFrame frame =new JFrame("Login Screen"); 
JLabel username =new JLabel("username:"); 
JLabel pword = new JLabel("password:"); 
JTextField t1 =new JTextField(15); 
JTextField p1=new JTextField(15); 
JButton button =new JButton("login"); 
Connection conn=null; 
public void display() 
{ 
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    JPanel panel =new JPanel(); 
    panel.add(username); 
    panel.add(t1); 
    panel.add(pword); 
    panel.add(p1); 
    panel.add(button); 
    frame.add(panel); 

    frame.setSize(300,300); 
    frame.setVisible(true); 
} 
public void connection() 
{ 

button.addActionListener(new ActionListener() 
{ 
    public void actionPerformed(ActionEvent e) 
    { 
    try{ 
     try{ 
     String url ="jdbc:mysql56://localhost:3306/"; 
     String dbname="test1"; 
     String driver="com.mysql56.jdbc.Driver"; 
     String uname="root"; 
     String password="root"; 
     Class.forName(driver).newInstance(); 
      conn = DriverManager.getConnection(url+dbname,uname,password); 

     }catch(Exception exe) 
     { 
      JOptionPane.showMessageDialog(null, "connection error"); 
     } 
     String query="select*from login where username=? and pwd=? "; 

      PreparedStatement pst= conn.prepareStatement(query); 
      pst.setString(1,t1.getText()); 
      pst.setString(2,p1.getText()); 
      ResultSet rs=pst.executeQuery(); 
      if (rs.next()) 
      { 
       JOptionPane.showMessageDialog(null, "Username and Password correct"); 
      } 
      else 
      { 
       JOptionPane.showMessageDialog(null, "invalid username and password"); 
      } 
      rs.close(); 
      pst.close(); 
      conn.close(); 


      }catch(Exception ex) 
      { 
       JOptionPane.showMessageDialog(null, ex); 
      } 

} 

}); 
} 


public static void main(String args[]) 
{ 
    loginscreen login=new loginscreen(); 
    login.display(); 
    login.connection(); 
}} 

我收到連接錯誤和空指針錯誤。請幫我改正它們。連接錯誤和java.long.nullpointer錯誤

+0

你能分享你所看到的錯誤? – AnotherDeveloper

+0

'conn'可能是空的 –

+0

我正在找類沒有找到錯誤 – Ashok

回答

0

由於驅動程序的類名稱無效,因此會出現此連接錯誤。所以拋出異常(ClassNotFoundException)。

我試過com.mysql.jdbc.Driver而不是​​,它工作正常。

此外,由於此異常連接對象將不會被創建。所以它將是空的。因此,得到NullPointerException。一旦驅動程序成功加載上述驅動程序名稱,該NPE也將解決。

您必須在兩處更改驅動程序名稱,一個在分配url,另一個在分配driver

您還應該檢查的連接對象是否爲空或不是來驗證你是否成功連接或不

+0

我改變和編譯但仍然顯示相同的錯誤 – Ashok