MySQL错误异常“ Awt-Eventqueue-0” java.lang.nullpoInterException
这是我的寄存器页面:
在添加电子邮件检查器功能之前,注册正在工作。 此功能进行检查是否有人在数据库上使用了此电子邮件。
这是我的代码:
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:
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:
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 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
在方法
check_email
中,您可以使用用户名
和password
连接到数据库。但是您确实有一个本地变量/参数,具有相同名称
用户名
,它可以防止getConnection
使用/使用正确的global用户名
。为什么在
check_email
-Method中创建一个新的DB连接,而不是将连接作为参数传递给方法或使用类变量来连接?Within the method
check_email
you are connecting to the database usingusername
andpassword
.But you do have a local variable/parameter with the same name
username
which preventsgetConnection
from seeing/using the correct globalusername
.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?