繁体   English   中英

java.lang.NullPointerException 我的数据库中的错误

[英]java.lang.NullPointerException Error in my Database

我的代码有问题吗? 关于我的代码在哪里 go 错了,我已经差不多一个小时了,每次我添加一个信息时,它总是显示一个错误,它是 nullpointerexception,这里有热情的程序员来帮助这个业余程序员吗? 我才刚开始。

 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是 null,您将得到java.lang.NullPointerException

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

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

使用上面的代码,即使您为输入变量获得 null 值,它也不会出现异常,并将继续执行else代码部分。 但是您在设置插入参数时会遇到异常,因为您使用了 {your variable}.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);
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM