Java 按下按钮时无法保存到数据库

Java 按下按钮时无法保存到数据库,java,mysql,sql,Java,Mysql,Sql,我有一个面板上的按钮代码,如下所示: try{ Koneksi objKoneksi = new Koneksi(); Connection kon = objKoneksi.bukaKoneksi(); Statement stat = kon.createStatement(); String query = "insert into transaksi(invoiceno,kode,nama,jumlah,harga,

我有一个面板上的按钮代码,如下所示:

    try{
        Koneksi objKoneksi = new Koneksi();
        Connection kon = objKoneksi.bukaKoneksi();
        Statement stat = kon.createStatement();
        String query = "insert into transaksi(invoiceno,kode,nama,jumlah,harga,total) values('"
                +Invoice.getText()+"','"
                +Kode.getText()+"','"
                +Nama.getText()+"','"
                +Jumlah.getText()+"','"
                +Harga.getText()+"','"
                +Total.getText()+"','";
        int rows = stat.executeUpdate(query);

        if(rows==1){
            JOptionPane.showMessageDialog(this,"Data sudah tersimpan");
            kon.close();
        }
    }
    catch(SQLException e){}
}
以及一个连接类:

和声明类:

(很抱歉没有在这里发布代码。我在预格式化文本块上遇到了一些问题)

当我按下按钮将数据保存到数据库时,出现以下错误:

Connection success:
You are not connected to database
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at javafinalproject.Aplikasi.SaveActionPerformed(Aplikasi.java:184)
at javafinalproject.Aplikasi.access$200(Aplikasi.java:15)
at javafinalproject.Aplikasi$3.actionPerformed(Aplikasi.java:83)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6516)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
at java.awt.Component.processEvent(Component.java:6281)
at java.awt.Container.processEvent(Container.java:2229)dd
还有许多格言

有人能帮我吗?
在此之前谢谢您

此处出现异常:

catch (Exception ex) {
    System.out.println("You are not connected to database");
    return null;
}
如果要抑制它,则应通过
ex.printStackTrace()
显示它。 无论如何,该方法随后将返回
null
,这将导致
NullPointerException
,如下所示:

Statement stat = kon.createStatement();
// --------------^^^
更新:

放在这里:

catch (Exception ex) {
    System.out.println("You are not connected to database");
    ex.printStackTrace();
    return null;
}

附言:你最好去和你的老师/教授谈谈,似乎你缺乏解决这个问题所需的基本理解

检查这是否返回null或连接对象objKoneksi.bukaKoneksi()。如果它返回null,那么您必须调试objKoneksi.bukaKoneksi()这个方法正如我在回答中所说的,一旦您打印了异常,您将能够看到哪里出了问题。我猜不出…调试此线路连接kon=objKoneksi.bukaKoneksi()。检查这行的kon执行值是多少我必须把ex.printStackTrace放在哪里?看起来你在这里发布的代码很好。但是,
bukaKoneksi()
调用可能不好。它应该会给您一个数据库连接,但由于某些原因,连接没有建立。请注意,实际连接可能不会在
bukaKoneksi()
调用时完成;驱动程序可能会将其延迟,直到您发出第一条SQL语句。