java.sql.SQLException:数据库已锁定

时间:2010-04-05 13:36:11

标签: java sqlite

我们在代码中使用sqlite056.jar。在批量插入数据库时​​,我们在提交时会在线获取异常。

代码行

<object of Connection>.commit();
<object of Connection>.setAutoCommit(true);

异常

java.sql.SQLException: database locked

5 个答案:

答案 0 :(得分:9)

每次查询后都需要关闭连接。如果任何连接仍然存在。我在Java桌面应用程序上遇到了同样的错误,现在已经解决了。

答案 1 :(得分:7)

读取SQLite数据库会将锁定状态设置为Shared。多个阅读器可以同时处于活动状态。

写入SQLite数据库会将锁定状态设置为Exclusive。当时没有其他进程可以处于活动状态。

您可以在http://www.sqlite.org/lockingv3.html

上找到详细说明

答案 2 :(得分:2)

似乎有多个进程正在尝试修改数据库。您可以在任何给定时间只打开一个连接。关于这个问题的更多背景可能有助于我们为您提供更具体的答案。

答案 3 :(得分:0)

就我而言,我忘了在UPDATE查询中添加WHERE子句,这会导致“数据库锁定”错误。

仔细检查您的查询。

编辑:我忘了表示我使用了一种UPDATE查询,我正在更改多个属性:

  

更新用户SET weight = 160,desiredWeight = 145 WHERE id = 1;

答案 4 :(得分:0)

关闭数据库浏览器(对我有用)或其他任何访问数据库的东西