MySQL错误异常“ Awt-Eventqueue-0” java.lang.nullpoInterException

发布于 2025-01-26 21:16:48 字数 2747 浏览 2 评论 0原文

这是我的寄存器页面:

”在此处输入图像描述”

在添加电子邮件检查器功能之前,注册正在工作。 此功能进行检查是否有人在数据库上使用了此电子邮件。

这是我的代码:

try {
    Class.forName("com.mysql.jdbc.Driver");
    sqlConn = DriverManager.getConnection(connect, username, password);
    if (check_email(u.getEmail())) {
        Class.forName("com.mysql.jdbc.Driver");
        sqlConn = DriverManager.getConnection(connect, username, password);
        String query = "insert into users_table (Name_surname,E_mail,Age,Profession,Student,Password)"
                            + " values (?,?,?,?,?,?)";
        pst = sqlConn.prepareStatement(query);

        pst.setString(1, u.getName_surname());
        pst.setString(2, u.getEmail());
        pst.setInt(3, u.getAge());
        pst.setString(4, u.getProffesion());
        pst.setString(5, u.getStudent());
        pst.setString(6, u.getPassword());
        pst.executeUpdate();
        JOptionPane.showMessageDialog(null, "You signed up");

    } else {
        JOptionPane.showMessageDialog(null, "You have already account");
    }
} catch (ClassNotFoundException | SQLException ex) {
    Logger.getLogger(Register.class.getName()).log(Level.SEVERE, null, ex);
}


public boolean check_email(String username) throws SQLException, ClassNotFoundException {
    Class.forName("com.mysql.jdbc.Driver");
    sqlConn = DriverManager.getConnection(connect, username, password);
    boolean e_mail = true;
    String query = "Select * from users.users_table where E_mail = ?";
    try {
        pst = sqlConn.prepareStatement(query);
        pst.setString(1, j_register_mail.getText());
        rs = pst.executeQuery();
        if (rs.next()) {
            e_mail = false;
        }
    } catch (SQLException ex) {
        Logger.getLogger(Register.class.getName()).log(Level.SEVERE, null, ex);
    }
    return e_mail;

这是我的数据库:

”

”在此处输入图像描述

我有这个错误:

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at JFrame.Proje.Register.check_email(Register.java:462)
at JFrame.Proje.Register.register_btActionPerformed(Register.java:430)
at JFrame.Proje.Register.access$400(Register.java:30)
at JFrame.Proje.Register$5.actionPerformed(Register.java:334)

This is my register page:

enter image description here

Registration was working before adding Email checker functionality.
This function for check did someone used this email on database.

This is my code:

try {
    Class.forName("com.mysql.jdbc.Driver");
    sqlConn = DriverManager.getConnection(connect, username, password);
    if (check_email(u.getEmail())) {
        Class.forName("com.mysql.jdbc.Driver");
        sqlConn = DriverManager.getConnection(connect, username, password);
        String query = "insert into users_table (Name_surname,E_mail,Age,Profession,Student,Password)"
                            + " values (?,?,?,?,?,?)";
        pst = sqlConn.prepareStatement(query);

        pst.setString(1, u.getName_surname());
        pst.setString(2, u.getEmail());
        pst.setInt(3, u.getAge());
        pst.setString(4, u.getProffesion());
        pst.setString(5, u.getStudent());
        pst.setString(6, u.getPassword());
        pst.executeUpdate();
        JOptionPane.showMessageDialog(null, "You signed up");

    } else {
        JOptionPane.showMessageDialog(null, "You have already account");
    }
} catch (ClassNotFoundException | SQLException ex) {
    Logger.getLogger(Register.class.getName()).log(Level.SEVERE, null, ex);
}


public boolean check_email(String username) throws SQLException, ClassNotFoundException {
    Class.forName("com.mysql.jdbc.Driver");
    sqlConn = DriverManager.getConnection(connect, username, password);
    boolean e_mail = true;
    String query = "Select * from users.users_table where E_mail = ?";
    try {
        pst = sqlConn.prepareStatement(query);
        pst.setString(1, j_register_mail.getText());
        rs = pst.executeQuery();
        if (rs.next()) {
            e_mail = false;
        }
    } catch (SQLException ex) {
        Logger.getLogger(Register.class.getName()).log(Level.SEVERE, null, ex);
    }
    return e_mail;

This is my database:

enter image description here

enter image description here

I got this error:

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at JFrame.Proje.Register.check_email(Register.java:462)
at JFrame.Proje.Register.register_btActionPerformed(Register.java:430)
at JFrame.Proje.Register.access$400(Register.java:30)
at JFrame.Proje.Register$5.actionPerformed(Register.java:334)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

十年九夏 2025-02-02 21:16:48

在方法check_email中,您可以使用用户名password连接到数据库。

但是您确实有一个本地变量/参数,具有相同名称用户名,它可以防止getConnection使用/使用正确的global 用户名

为什么在check_email -Method中创建一个新的DB连接,而不是将连接作为参数传递给方法或使用类变量来连接?

Within the method check_email you are connecting to the database using username and password.

But you do have a local variable/parameter with the same name username which prevents getConnection from seeing/using the correct global username.

And why create a new DB-connection within the check_email-method instead of passing the connection as a parameter to the method or using a class-variable for the connection?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文