2015-12-31 60 views
4

这些代码块的工作,但... 如果我使用这个块一个接一个我的应用程序不会删除数据库文件。 (result是equeal到false删除使用Java的SQLite数据库文件不起作用

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(); 

但如果我只用删除代码,而它的工作原理数据库操作!为什么?我怎样才能避免它?

+0

您还需要关闭连接:'conn.close();' – Andie2302

+0

@ Andie2302,你是对的。已在下面的答案中找到。谢谢。 – Vyacheslav

回答

1

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

而当你不使用数据库操作,那么SQL文件没有被使用,因此它可以很容易地被删除。因此,删除需要的文件以确保没有与数据库的开放连接,并且一旦所有连接都关闭,您可以删除该文件。 变化

stmt.close(); 

stmt.close(); 
conn.close(); 
+0

如何删除此连接? – Vyacheslav

+0

@Vyacheslav: - 当你这样做。您必须关闭连接,然后删除该文件。 –

+1

哦。忘了关于conn.close();是的,它的作品。 – Vyacheslav