SQLITE数据库使用java操作错误(IDE:Netbeans)

时间:2013-08-19 22:36:12

标签: java database swing sqlite netbeans-7

我在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);
    }
}

1 个答案:

答案 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的错误!误差..

希望这会对你有帮助!