使用Java删除SQLite数据库文件无效

4
这些代码块是有效的,但是...... 如果我逐个使用这些代码块,我的应用程序不会删除数据库文件。(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();

但是如果我只使用删除代码而没有进行数据库操作,它就可以正常工作!为什么?我该如何避免这种情况发生?


你还需要关闭连接:conn.close(); - Andie2302
@Andie2302,你说得对。已经在下面的答案中找到了。谢谢。 - Vyacheslav
1个回答

1
因为当您使用数据库连接时,您的SQL文件正在使用中,因此您无法删除它。
而当您不使用数据库操作时,SQL文件未被使用,因此可以轻松删除。因此,要删除文件,您需要确保没有与数据库的打开连接,并且一旦所有连接都关闭,就可以删除该文件。 change
stmt.close();

转换为

stmt.close();
conn.close();

我该如何移除这个连接? - Vyacheslav
@Vyacheslav:当你这样做时,你必须关闭连接,然后删除文件。 - Rahul Tripathi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接