1

我在 java IDE NetBeans 中遇到了 Sqlite 数据库的问题。

我的数据库中有四个表,其中 3 个表正常工作,但最后一个表不工作!假设当我想将我的数据插入到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);
    }
}
4

1 回答 1

1

您应该在第一条语句中连接您的数据库。IE

  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 错误!错误..

希望对你有帮助!

于 2014-09-10T07:53:04.763 回答