這裏超級初學者。如何保存具有.db擴展名的SQLite數據庫?
我創建了一個SQLite數據庫,我想用SQLiteManager插件查看它,但是我的數據庫不會在我的(虛擬)設備上添加.db擴展名。到目前爲止,我不得不將該文件複製到我的計算機上,更改擴展名並將其推回以啓用SQLiteManager圖標。然後我可以看到數據庫。
我該如何避免這種情況?
此外,有人提到我不應該依賴「/ data/data /」來成爲正確的路徑。他們建議我使用Context.openOrCreateDatabase
或get*Path
或get*Dir
方法之一。有人能詳細說明這些嗎?我使用的代碼來自我看到的Youtube教程。
這裏的定義路徑代碼:
try {
String destPath = "/data/data/" + getPackageName() + "/databases/GradesDB.db";
File f = new File(destPath);
if(!f.exists()) {
CopyDB(getBaseContext().getAssets().open("mydb"),
new FileOutputStream(destPath));
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
你是否正在擴展SQLiteOpenHelper來創建你的數據庫?如果是這樣,你應該在你的構造函數中提供一個數據庫名稱,只需在該名稱的末尾添加「.db」。 – panini
**「我使用的代碼來自我看到的Youtube教程。」**:哎呀!有一點要記住 - 任何人都可以製作視頻並將其發佈到YouTube--這並不意味着他們對自己的行爲有絲毫的想法。該代碼在幾個方面是錯誤的。從不硬編碼文件系統路徑(Android設備的製造商可以選擇使用不同的目錄結構)。除非你有特定的要求(並且知道其含義是什麼),否則使用'getBaseContext()'是你很少會做的事情。 – Squonk
謝謝,@panini!這很簡單,讓數據庫可以訪問。和@Squonk,我試圖弄清楚爲什麼教程包含這塊代碼。它究竟做了什麼以及做什麼更好的方法? – NSouth