Java - не могу вставить несколько данных в базу данных - PullRequest
0 голосов
/ 13 января 2019

У меня есть некоторый код, который будет сохранен в две базы данных, но другой не может быть сохранен в базе данных. тот, который не может быть сохранен, это вставка данных из нескольких строк из jtable с 3 значениями, но у меня есть 5 столбцов в базе данных, потому что мне нужно заполнить их временно, а остальные значения равны нулю. это код:

private void btnSimpanActionPerformed(java.awt.event.ActionEvent evt) {                                          
    // TODO add your handling code here:
    try{
        String sql="INSERT INTO pinjam VALUES('"+noPeminjaman.getText()+
                "','"+noMember.getText()+"','"+tglPinjam.getText()+"',1)";
        java.sql.Connection conn = (Connection)Config.configDB();
        java.sql.PreparedStatement pst = conn.prepareStatement(sql);
        pst.execute();

        //Simpan ke pinjam_detil
        int rows = tabelPinjam.getRowCount();
        for(int row = 0; row<rows; row++){
            String idBuku = (String)tabelPinjam.getValueAt(row, 0);
            String tglTempo = (String)tabelPinjam.getValueAt(row, 2);
            try{
                String query = "INSERT INTO pinjam_detil (idpinjam,idbuku,tgl_tempo) "
                        + "VALUES(?,?,?)";

                java.sql.PreparedStatement stmt = conn.prepareStatement(query);
                stmt.setString(1, noPeminjaman.getText());
                stmt.setString(2, idBuku);
                stmt.setString(3, tglTempo);



                stmt.addBatch();
                stmt.executeBatch();
            }catch(Exception ex){}
        }
        JOptionPane.showMessageDialog(null, "Successfully Save");
    }catch(Exception e){}
    resetForm();
}

1 Ответ

0 голосов
/ 13 января 2019

Не лови исключение и ничего не делай. Предпочтительно добавить в метод предложение throws, например:

private void doThingie() throws SQLException {}

и если это не вариант, это должно быть в вашем блоке catch:

new RuntimeException(e);

потому что сейчас происходит какая-то ошибка, и вы не можете сказать, потому что вы молча игнорируете ее.

Кроме того, это просто stmt.execute();, а не addBatch + executeBatch

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...