如何让greenDAO在sdcard上创建数据库?-安卓

MBH*_*MBH 2 android sqliteopenhelper greendao

我想将greenDAO用作sqlite DB ORM

但是我的数据库应该位于sdcard的特定文件夹中,例如 /sdcard/myapp/database.sqlite

那么如何使用greenDAO选择要创建的数据库文件夹?

bwt*_*bwt 6

在相当长的一段时间(我相信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);
...
Run Code Online (Sandbox Code Playgroud)

另外,由于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);
...
Run Code Online (Sandbox Code Playgroud)