如何让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);
...