2015-12-31 83 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