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();
}}
我收到连接错误和空指针错误。请帮我改正。
最佳答案
您收到此连接错误是因为驱动程序的类名无效。因此,抛出异常(ClassNotFoundException)。
我尝试使用com.mysql.jdbc.Driver
而不是com.mysql56.jdbc.Driver
并且它工作正常。
此外,由于此异常,连接对象将不会被创建。所以它将为空。因此,得到 NullPointerException。一旦使用上面提到的驱动程序名称成功加载驱动程序,这个NPE也将得到解决。
您必须在两个位置更改驱动程序名称,一个在分配 url
中,另一个在分配 driver
中。
还应该检查连接对象是否为空,以验证是否已成功获取连接
关于java - 连接错误和 java.long.nullpointer 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32258293/