我在Java IDE NetBeans中遇到了Sqlite数据库的问题。
我的数据库中有四个表,其中有三个表正常工作,但最后一个表无效!假设当我想在JTable
和数据库中插入我的数据时,它会显示JTable
中的值,但有时它会插入,有时它不会将值插入数据库!
以下是对按钮执行的操作,通过该按钮将数据插入到jTable和数据库中!
private void jButton17ActionPerformed(java.awt.event.ActionEvent evt) {
PreparedStatement pst = null;
Connection conn = null;
try {
String sql = "insert into month (No,Description,Sale,Expense,Total)
values (?,?,?,?,?)";
pst = conn.prepareStatement(sql);
pst.setString(1, txt_srM.getText());
pst.setString(2, txt_dateM.getText());
pst.setString(3, txt_tsaleM.getText());
pst.setString(4, txt_texpM.getText());
pst.setString(5, txt_subtM.getText());
pst.execute();
JOptionPane.showMessageDialog(null, "Saved!");
} catch (Exception e) {
JOptionPane.showMessageDialog(null, e);
}
}
答案 0 :(得分:1)
您应该在第一个语句中连接数据库。即。
con = (YourDB/urDBconnectingClassName)
try {
String sql = "insert into month (No,Description,Sale,Expense,Total)
values (?,?,?,?,?)";
pst = conn.prepareStatement(sql);
pst.setString(1, txt_srM.getText());
pst.setString(2, txt_dateM.getText());
pst.setString(3, txt_tsaleM.getText());
pst.setString(4, txt_texpM.getText());
pst.setString(5, txt_subtM.getText());
pst.execute();
JOptionPane.showMessageDialog(null, "Saved!");
} catch (Exception e) {
JOptionPane.showMessageDialog(null, e);
}
如果你这样做.. 那么你必须在方法结束时关闭你的数据库连接,即
}catch(Exception e){
JOptionPane.showMessageDialog(null, e);
}finally{
try{
rs.close(); //where rs = resultstatement
pst.close();
}catch(Exception e){
JOptionPane.showMessageDialog(null, e);
}
}
如果你没有关闭连接并且它正在以另一种方法连接..你可能会收到DATABASE Lock的错误!误差..
希望这会对你有帮助!