是什么导致了 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
因为con
是null
。你测试 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();
}
尽管将代码与我之前编写的代码进行了比较,但我不知道为什么 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
因为con
是null
。你测试 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();
}