gpt4 book ai didi

java - SQLite 古怪的数据库表锁

转载 作者:行者123 更新时间:2023-12-01 10:12:32 33 4
gpt4 key购买 nike

我使用 sqlite 作为应用程序的数据库。它在所有方面都工作正常,但是当我要从数据库中删除表时,它会使用 [ https://bitbucket.org/xerial/sqlite-jdbc 抛出此错误。 ]:

错误

java.sql.SQLException: [SQLITE_LOCKED]  A table in the database is locked (database table is locked)

我正在使用no-auto-commit-mode,所以在删除我已经提交的表之前。为什么会发生这种情况?

一个可能的解决方案是关闭连接并重新打开它,但这无法完成,因为其他操作正在同时发生。

**

解决方案是:------------------------

**

我使用以下方法将表的行数计算到线程中:

connection1.createStatement().executeQuery("SELECT COUNT(*) FROM LIBRARIES;").getInt(1);

但这会返回一个从未关闭的结果集,因此数据库表被永远锁定!!

最佳答案

这是一个FAQ 。一个程序/线程在写入时不可能同时访问数据库。

您应该设置一个超时,以允许您的线程等待其他线程完成。

关于java - SQLite 古怪的数据库表锁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36062790/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com