SQLite数据库锁定删除命令

时间:2014-08-27 08:08:56

标签: java sqlite locking

我有一个问题,我似乎无法让这个简单的删除命令工作。每次我运行它只会锁定数据库并崩溃

数据库中存在id参数 数据库很小。只有几张桌子。 更新命令完全正常。

id是in,结果命令是 - DELETE from Employees where ID = 2;

public static void EmployeeDeleteByID(int idIn){

     Connection c = null;
        Statement stmt = null;
        try {
          c = Connect();
          c.setAutoCommit(false);
          System.out.println("Opened database successfully");

          stmt = c.createStatement();
          String sql = "DELETE from Employees where ID = " + idIn + ";";
          System.out.println(sql);
          stmt.executeUpdate(sql);
          c.commit();
          stmt.close();
          c.close();
        } catch ( Exception e ) {
          System.err.println("Error 1 : " +  e.getClass().getName() + ": " + e.getMessage() );
          System.exit(0);
        }
        System.out.println("Operation done successfully");


}

运行后出错:java.sql.SQLException: database is locked

2 个答案:

答案 0 :(得分:1)

“数据库已锁定”表示某些其他连接仍具有活动事务。

如果没有其他进程访问数据库,则必须检查程序中的所有连接;至少其中一人忘了commit()

答案 1 :(得分:0)

代码实际上运行正常。

事实证明,正在调用另一个方法来填充JCombo,由于从数据库调用null值导致错误,因此保持连接打开。

由于例外框中没有代码,因此并不明显。

愚蠢的小问题所以人们总是犯错误抛出某种堆栈跟踪或警告。

由于