我有一些代码可以保存到两个数据库中,但另一个不能保存到数据库中。无法保存的是从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();
}
答案 0 :(得分:1)
不要捕获异常,什么也不做。最好向该方法添加一个throws
子句,如下所示:
private void doThingie() throws SQLException {}
如果这不是一个选项,则应在您的catch块中:
new RuntimeException(e);
因为现在发生了一些错误,您无法分辨,因为您一直在默默忽略它。
此外,它只是stmt.execute();
,而不是addBatch + executeBatch