我正在开发一个 Java 项目,我必须在我的 SQLite 数据库中进行修改。 我连接到它并且工作得很好,除了这个奇怪的错误。
s.executeUpdate("INSERT INTO STUDENTS VALUES('S0',11)");
...
//many statements... including queries
...
String c2="INSERT INTO STUDENTS VALUES ('S1', 2)";
s.executeUpdate(c2);
s.executeUpdate("DROP TABLE STUDENTS");
语句 s.executeUpdate("INSERT INTO STUDENTS VALUES('S0',11)");
和 s.executeUpdate(c2);
完美运行并插入行存入数据库。但是当涉及到下面的语句时,我收到了奇怪的数据库锁定错误。
当我将查询更改为另一个查询时,它也工作得很好。当到达结束语句时就会出现错误。更准确地说,上面编写的所有查询(即此处代码的第一条语句)都工作得很好。
请帮我找出错误。
最佳答案
我猜“s”变量是一个语句。尝试执行后关闭资源:
PreparedStatement updateStatement = connection.prepareStatement("INSERT INTO STUDENTS VALUES ('S1', 2)");
try {
updateStatement.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
} finally {
updateStatement.close();
}
每次调用数据库后都执行此操作。
关于java - SQLite 'Database Locked' 特定查询的奇怪错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13746861/