Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java.sql.SQLException:数据库已锁定_Java_Sqlite - Fatal编程技术网

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

java.sql.SQLException:数据库已锁定,java,sqlite,Java,Sqlite,我们在代码中使用sqlite056.jar。当我们批量插入到数据库中时,当我们要提交时,我们会在线得到异常 代码行 似乎不止一个进程试图修改数据库。在任何给定时间只能打开一个连接。有关该问题的更多背景信息可能会帮助我们提供更具体的答案。读取SQLite数据库会将锁定状态设置为共享。多个读卡器可以同时处于活动状态 写入SQLite数据库会将锁定状态设置为独占。此时没有其他进程处于活动状态 您可以找到有关每次查询后需要关闭的连接的详细说明。如果任何连接仍然存在。我在Java桌面应用程序上遇到了相同的

我们在代码中使用sqlite056.jar。当我们批量插入到数据库中时,当我们要提交时,我们会在线得到异常

代码行


似乎不止一个进程试图修改数据库。在任何给定时间只能打开一个连接。有关该问题的更多背景信息可能会帮助我们提供更具体的答案。

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

写入SQLite数据库会将锁定状态设置为独占。此时没有其他进程处于活动状态


您可以找到有关每次查询后需要关闭的连接的详细说明。如果任何连接仍然存在。我在Java桌面应用程序上遇到了相同的错误,现在已经解决了。

在我的例子中,我忘记在更新查询中添加WHERE子句,这会导致“数据库锁定”错误

仔细检查你的疑问

编辑:我忘记指出我使用了一种更新查询类型,其中我正在更改多个属性:

更新用户设置权重=160,desiredWeight=145,其中id=1


假设我在数据库的表1中插入了值,同时在数据库的表2中也插入了值,并且数据库连接的对象相同,那么我们是否可以同时使用数据库的多个表和数据库的相同连接对象。或者,数据库是否因obj连接而发生锁定异常。提交()lineI在使用appletviewer运行小程序(访问sqlite db)时出现相同的错误。但仅当在64位jvm下运行时。切换到32位jvm运行良好(windows)。可能是64位驱动程序没有编译到jar中。这是一个非常老的问题——但感谢您尝试回答这个问题。在这个特定的例子中,您不知道所讨论的
SQL
语句是什么样子的,因此建议查询是
UPDATE
,其中缺少
,这是猜测工作。在这种情况下,更合适的做法是(在评论中)询问
SQL
查询是什么样的-暗示原因可能与缺少
WHERE
子句类似。我在帖子中添加了edit。我认为问题持续多久无关紧要,人们会像我一样用谷歌搜索这个问题。问候语!说得好。关于SQL语句,我的意思是问题本身不包括SQL语句,因此您不会知道(如果不询问的话)它看起来是什么样子。但是关于回答老问题的好观点——好观点。
<object of Connection>.commit();
<object of Connection>.setAutoCommit(true);
java.sql.SQLException: database locked