将数据插入数据库时​​出现JavaFX- NullPointerException

时间:2019-05-04 15:44:24

标签: java mysql javafx

我正在尝试使用mysql db和javafx应用程序在db中创建插入方法。但是我在插入db时遇到了一些问题,它总是向我显示NPE,我试图在旧帖子上搜索解决方案,但是与我的问题没有任何相似之处,我希望任何人都可以提出链接,如果有解决此问题的方法。

BeliTiketController.java

@FXML
    private void btnSimpanBeliAction(ActionEvent event) throws ClassNotFoundException, SQLException {
        //Mengecek field kosong
        if (fieldKtp.getText().isEmpty() || fieldNamaPenumpang.getText().isEmpty() || 
            tanggalBerangkat.getValue().toString().isEmpty() || jamBerangkat.getValue().toString().isEmpty()  ) {
           Alert fieldKosong = new Alert(Alert.AlertType.WARNING);
           fieldKosong.setTitle("Perhatian");
           fieldKosong.setHeaderText("Form Kosong");
           fieldKosong.setContentText("Harap Mengisi Semua Field !!!");
           fieldKosong.showAndWait();
        } else {
            String jk = "";
            if (radioEkse.isSelected()) {
                jk = radioEkse.getText();
            }
            if (radioBisnis.isSelected()) {
                jk = radioBisnis.getText();
            } if(radioEkonomi.isSelected()){
                jk = radioEkonomi.getText();
            }
            String labelBayar = labelTotalBayar.getText();
            int bayar = Integer.parseInt(labelBayar);

//line 148
            TiketDAO.insertTiket(fieldKtp.getText(), fieldNamaPenumpang.getText(), 
                    comboAsal.getValue(), comboTujuan.getValue(), comboKodeKereta.getValue(), fieldNamaKereta.getText(),
                    spinTiket.getValue(), bayar, tanggalBerangkat.getValue(), jamBerangkat.getValue());
            // Menampilkan dialog box informasi
                Alert alertSimpan = new Alert(Alert.AlertType.INFORMATION);
                alertSimpan.setTitle("Kampus App - Informasi");
                alertSimpan.setHeaderText("Informasi Simpan Data");
                alertSimpan.setContentText("Simpan data ke database berhasil !");
                alertSimpan.showAndWait();


                DashboardController.getInstance().loadData(); //memanggil method loadData() dari DashboardController
                btnSimpanBeli.getScene().getWindow().hide(); //Menutup scene AddMahasiswa.fxml
        }
    }

TiketDAO.java

public class TiketDAO {

    //method insertTiket
   public static void insertTiket(String ktp, String nama, String st_asal, String st_tujuan, String kelas_kereta,
           String nama_kereta, int jumlah_tiket, int total_harga, LocalDate tanggal_berangkat, LocalTime jam_berangkat) throws SQLException, ClassNotFoundException{
       //Buat Query
       String beliTiket = 
               "INSERT INTO `order_tiket` (`no_ktp`, `nama_penumpang`, `stasiun_asal`, `stasiun_tujuan`,"
               + "`kelas_kereta`, `nama_kereta`, `jumlah_tiket`, `total_harga`, `tanggal_berangkat`, `jam_berangkat`)"
               + " VALUES ('"+ktp+"', '"+nama+"', '"+st_asal+"', '"+st_tujuan+"', '"+kelas_kereta+"',"
               + "'"+nama_kereta+"', '"+jumlah_tiket+"', '"+total_harga+"', '"+tanggal_berangkat+"', '"+jam_berangkat+"')";
       try {
            DBConfig.dbExecuteUpdate(beliTiket); //Line 25
        } catch (SQLException e) {
            System.out.println("Ada Kesalahan saat input data ke Database" + e);
        }
   }
}

DBConfig.java

public static void dbExecuteUpdate(String sqlSmt) throws SQLException, ClassNotFoundException{
        //Deklarasi
        Statement stmt = null;
        try {
            dbConnect();
            stmt = conn.createStatement(); //Line 74
            stmt.executeUpdate(sqlSmt);
        } catch (SQLException e) {
            System.out.println(e);
        }finally{
            dbDisconnect();
        }
    }    
}

错误消息

Caused by: java.lang.NullPointerException
    at Database.DBConfig.dbExecuteUpdate(DBConfig.java:74)
    at DAO.TiketDAO.insertTiket(TiketDAO.java:25)
    at Controller.BeliTiketController.btnSimpanBeliAction(BeliTiketController.java:148)
    ... 120 more

如果有人可以放一些链接以供参考,我已经非常尊重我已经搜索了stackoverflow,但是没有找到它。.

0 个答案:

没有答案