我有一些代码可以保存到两个数据库中,但另一个不能保存到数据库中。无法保存的是从具有 3 个值的 jtable 插入多行数据,但我在数据库中有 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();
}
最佳答案
不要捕获异常然后什么也不做。最好在方法中添加一个 throws
子句,如下所示:
private void doThingie() throws SQLException {}
如果那不是一个选项,这应该在您的 catch block 中:
new RuntimeException(e);
因为现在发生了一些错误,您无法判断,因为您默默地忽略了它。
还有,就是stmt.execute();
,不是addBatch+executeBatch
关于java - 无法将多个数据插入数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54165765/