【发布时间】:2016-08-30 08:58:57
【问题描述】:
我有一个包含多个表的 sqlite 数据库。其中之一称为学生会话。在我的代码中,我多次调用表进行选择、插入、更新。过了一会儿,我收到了消息:
java.sql.SQLException: [SQLITE_BUSY] 数据库文件被锁定(数据库被锁定)
调用的一个实例如下:
String query3 = "select * from studentssession where id= ? and math= ? and level = ?";
PreparedStatement pst__ = connectionUsers.prepareStatement(query3);
pst__.setString(1, x);
pst__.setString(2, x1);
pst__.setString(3, x2);
ts2 = pst__.executeQuery();
我试图弄清楚我是否必须每次都关闭准备好的语句,以及是否存在导致我的问题的情况。
编辑:是否可以检查数据库中可能打开的引用,例如使用 javafxbutton?
编辑:有没有一种方法可以检查我的代码中对表的引用是否存在问题并找到并可能关闭它们?
【问题讨论】:
-
这可能是由于您对 sqlite 数据库有多个打开的引用。
-
是的,这是真的,但我怎样才能将它们全部关闭?我的意思是有没有办法对所有这些引用进行检查?这有可能与准备好的语句有关吗?
-
关闭你的代码 pst__.connection.close();
-
我必须对每个语句都这样做,或者当我的程序关闭时?
-
对于每个语句。