是什么导致了 NullPointerException?

What is causing NullPointerException?

尽管将代码与我之前编写的代码进行了比较,但我不知道为什么 null

这是我的 Java 代码,用于将数据插入 table:

  @FXML
    private void rewards_Parameters(){
        try{
            String sql = "INSERT INTO SetUpReward VALUES(?,?,?,?,?,?)";
            if(sql !=null){
                pst =con.prepareStatement(sql);
                pst.setString(2, txt_minGiftValue.getText());
                pst.setString(3, txt_maxGiftValue.getText());
                pst.setString(4, txt_RewardPoint.getText());

                pst.execute();
            }
        }catch(SQLException e){
            JOptionPane.showMessageDialog(null, e);
        }    
    }

我的 Init 进程...

 /**
 * FXML Controller class
 *
 * @author JIDO
 */
public class IGisftCardController implements Initializable {
    Connection con =null;
    ResultSet rs = null;
  PreparedStatement pst ;

堆栈跟踪:

Caused by: 

java.lang.NullPointerException
    at view_controller.IGisftCardController.loadReward(IGisftCardController.java:249)
    at view_controller.IGisftCardController.initialize(IGisftCardController.java:168)
    at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2548)
    ... 22 more
Exception running application igiftcardfx.IGiftCardFX
Java Result: 1

因为connull。你测试 sql != null,让那个 con。而且您可能应该连接到数据库(或者至少记录您没有连接到数据库)。另外,请捕获堆栈跟踪(它们对于调试您的应用程序非常宝贵)。像,

String sql = "INSERT INTO SetUpReward VALUES(?,?,?,?,?,?)";
try {
    if (con != null) {
        pst = con.prepareStatement(sql);
        pst.setString(2, txt_minGiftValue.getText());
        pst.setString(3, txt_maxGiftValue.getText());
        pst.setString(4, txt_RewardPoint.getText());
        pst.setString(5, txt_CardNumber.getText());
        pst.setString(6, txt_PayPalEmail.getText());
        pst.setString(7, txt_BankName.getText());
        pst.setString(8, txt_BankAccount.getText());
        pst.execute();
    } else {
        System.out.println("No connection");
    }
} catch (SQLException e) {
    JOptionPane.showMessageDialog(null, e);
    e.printStackTrace();
}