java.lang.NullPointerException Error in my Database



我的代码有问题吗?关于我的代码哪里出错,我已经快一个小时了,每次我添加信息时,它总是显示一个错误,它是空指针异常,这里有一个热情的程序员来帮助这个业余程序员吗?我才刚刚开始。

if (tf_accnum.equals("") || tf_bankID.equals("") || uname.equals("") ||pword.equals("")) {
JOptionPane.showMessageDialog(null,"ALL FIELDS ARE REQUIRED");
} else  {

try {
String sql = "Insert into tbl_memaccount(memaccID,memberID,username,password)values(?,?,?,?)";
PreparedStatement pst = con.prepareStatement(sql);
ps.setString(1,tf_accnum.getText());
ps.setString(2,tf_bankID.getText());
ps.setString(3,uname.getText());
ps.setString(4,pword.getText());
ps.execute();
JOptionPane.showMessageDialog(null,"Successful");

} catch(Exception ex) {
System.out.println(ex);
}
}

我猜异常来自第一行。如果tf_accnum, tf_bankID, uname or pword的任何变量为空,您将获得java.lang.NullPointerException

您可以使您的空字符串检查安全,如下所示:

if ("".equals(tf_accnum) || "".equals(tf_bankID) || "".equals(uname) || "".equals(pword))

使用上面的代码,即使您获得输入变量的 null 值,它也不会出现异常,并将继续else代码部分。但是在设置插入参数时会出现异常,因为您使用了{您的变量}.getText((。

代码的完整安全版本是:

if (tf_accnum == null || "".equals(tf_accnum)
|| tf_bankID == null || "".equals(tf_bankID)
|| uname == null || "".equals(uname)
|| pword == null || "".equals(pword)) {
JOptionPane.showMessageDialog(null,"ALL FIELDS ARE REQUIRED");
} else  {
try {
String sql = "Insert into tbl_memaccount(memaccID,memberID,username,password)values(?,?,?,?)";
PreparedStatement pst = con.prepareStatement(sql);
ps.setString(1,tf_accnum.getText());
ps.setString(2,tf_bankID.getText());
ps.setString(3,uname.getText());
ps.setString(4,pword.getText());
ps.execute();
JOptionPane.showMessageDialog(null,"Successful");
} catch(Exception ex) {
System.out.println(ex);
}
}

最新更新