我们在代码中使用sqlite056.jar。在批量插入数据库时,我们在提交时会在线获取异常。
代码行
<object of Connection>.commit();
<object of Connection>.setAutoCommit(true);
异常
java.sql.SQLException: database locked
答案 0 :(得分:9)
每次查询后都需要关闭连接。如果任何连接仍然存在。我在Java桌面应用程序上遇到了同样的错误,现在已经解决了。
答案 1 :(得分:7)
读取SQLite数据库会将锁定状态设置为Shared。多个阅读器可以同时处于活动状态。
写入SQLite数据库会将锁定状态设置为Exclusive。当时没有其他进程可以处于活动状态。
上找到详细说明答案 2 :(得分:2)
似乎有多个进程正在尝试修改数据库。您可以在任何给定时间只打开一个连接。关于这个问题的更多背景可能有助于我们为您提供更具体的答案。
答案 3 :(得分:0)
就我而言,我忘了在UPDATE查询中添加WHERE子句,这会导致“数据库锁定”错误。
仔细检查您的查询。
编辑:我忘了表示我使用了一种UPDATE查询,我正在更改多个属性:
更新用户SET weight = 160,desiredWeight = 145 WHERE id = 1;
答案 4 :(得分:0)
关闭数据库浏览器(对我有用)或其他任何访问数据库的东西