代码之家  ›  专栏  ›  技术社区  ›  Vyacheslav

使用Java删除SQLite数据库文件不起作用

  •  4
  • Vyacheslav  · 技术社区  · 9 年前

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

    但是,如果我只使用删除代码而不使用数据库操作,它会起作用!为什么?我该如何避免?

    1 回复  |  直到 9 年前
        1
  •  1
  •   Vyacheslav    9 年前

    因为当您使用数据库连接时,您的sql文件正在使用中,因此您不能删除它。

    如果不使用数据库操作,则sql文件不在使用中,因此可以轻松删除。因此,删除您需要的文件,以确保与数据库没有打开的连接,一旦所有连接都关闭,您就可以删除该文件。 改变

    stmt.close();
    

    进入

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