是否可以为sqlite数据库文件选择自定义位置?
如果可能,我想将数据库文件存储在存储卡中。如果用户从一个存储卡切换到另一个存储卡,我希望我的应用程序使用卡上可用的任何版本的数据库文件。
答案 0 :(得分:13)
默认情况下,您的数据库存储在 data / data / your_package / databases
中您可以使用SQLiteDatabase
openOrCreateDatabase
作为第一个参数提供自定义数据库的路径。
答案 1 :(得分:8)
您可以使用以下方式访问存储在您SD卡上的数据库:
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
public class MyClass {
private SQLiteDatabase myDB = null;
// Constructor
public MyClass() {
try {
myDB = SQLiteDatabase.openDatabase(stPathToDB, null, SQLiteDatabase.NO_LOCALIZED_COLLATORS|SQLiteDatabase.OPEN_READONLY);
} catch (SQLException e) {
e.printStackTrace();
}
}
// Destructor
public void finalize() {
myDB.close();
}
}
NO_LOCALIZED_COLLATORS =打开数据库而不支持本地化的合作者。
为了获得SD卡的路径,您可以使用:
stPathToDB = android.os.Environment.getExternalStorageDirectory().toString()+"/dbase.sqlite"
RGDS 莱恩