java - 连接错误和 java.long.nullpointer 错误

标签 java mysql swing

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/

相关文章:

MySQL触发器语法错误?

mysql - 在mysql中插入一个唯一的随机字母数字

java - 计时器问题-更新显示

java - 更改/显示光标与文本

java - Java 代码中无法访问代码?

java - Spring Java 包中的实体列表

Java数据结构类似于TreeMap + Hash?

java - 如何通过测试解决 API 调用上的错误代码 "405"?

PHPmyAdmin - 更改字段顺序(上移或下移)

Java FileWriter 只写第一行