如何让greenDAO在sdcard上创建数据库? - Android
How to let greenDAO to create the Database on sdcard ? - Android
我想使用 greenDAO 作为 sqlite DB ORM
但我的数据库应该位于 sdcard 的特定文件夹中,例如 /sdcard/myapp/database.sqlite
那么在使用greenDAO时如何选择要创建的数据库的文件夹呢?
很长一段时间(我相信 Android 2.2)可以将 SQLiteOpenHelper
与绝对路径一起使用。所以对于 greendao 示例应用程序(仅使用 Android 4.4 和 5.0 进行测试)
File path = new File(Environment.getExternalStorageDirectory(), "my_sdcard_dir/deeper_dir/notes-db");
path.getParentFile().mkdirs();
DevOpenHelper helper = new DaoMaster.DevOpenHelper(this, path.getAbsolutePath(), null);
db = helper.getWritableDatabase();
daoMaster = new DaoMaster(db);
...
或者,因为 DaoMaster
只需要数据库本身:
File path = new File(Environment.getExternalStorageDirectory(), "my_sdcard_dir/deeper_dir/notes-db");
path.getParentFile().mkdirs();
db = SQLiteDatabase.openOrCreateDatabase(path, null);
DaoMaster.createAllTables(db, true);
daoMaster = new DaoMaster(db);
...
我想使用 greenDAO 作为 sqlite DB ORM
但我的数据库应该位于 sdcard 的特定文件夹中,例如 /sdcard/myapp/database.sqlite
那么在使用greenDAO时如何选择要创建的数据库的文件夹呢?
很长一段时间(我相信 Android 2.2)可以将 SQLiteOpenHelper
与绝对路径一起使用。所以对于 greendao 示例应用程序(仅使用 Android 4.4 和 5.0 进行测试)
File path = new File(Environment.getExternalStorageDirectory(), "my_sdcard_dir/deeper_dir/notes-db");
path.getParentFile().mkdirs();
DevOpenHelper helper = new DaoMaster.DevOpenHelper(this, path.getAbsolutePath(), null);
db = helper.getWritableDatabase();
daoMaster = new DaoMaster(db);
...
或者,因为 DaoMaster
只需要数据库本身:
File path = new File(Environment.getExternalStorageDirectory(), "my_sdcard_dir/deeper_dir/notes-db");
path.getParentFile().mkdirs();
db = SQLiteDatabase.openOrCreateDatabase(path, null);
DaoMaster.createAllTables(db, true);
daoMaster = new DaoMaster(db);
...