这些代码块可以工作但是...
如果我一个一个地使用这个 block ,我的应用程序不会删除数据库文件。 (result
等于 false
)
sqlite管理部分:
// sqlite manage
Class.forName("org.sqlite.JDBC").newInstance();
conn = DriverManager.getConnection("jdbc:sqlite:/"+ myDBpath);
stmt = conn.createStatement();
//some calculations
stmt.close();
删除部分:
//remove this file
boolean result = new File(myDBpath).delete();
但如果我只使用删除代码而不进行数据库操作,它就可以工作!为什么?我该如何避免?
最佳答案
因为当您使用数据库连接时,您的 sql 文件正在使用中,因此您无法删除它。
当你不使用数据库操作时,sql文件就没有被使用,因此可以很容易地删除它。因此,删除您需要的文件以确保与您的数据库没有打开的连接,一旦所有连接都关闭,您就可以删除该文件。 改变
stmt.close();
进入
stmt.close();
conn.close();
关于java - 使用 Java 删除 SQLite 数据库文件不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34545672/