0

我需要为应用程序中的每个用户创建一个新数据库,并有多个在用户切换时更改的数据库。是否有任何现有的 ORM,如 GreenDAO、Storio、DbFlow、Realm 或类似的 Android orm/libraries 支持此功能,或者最好步行执行此操作,由我自己定义每个表和字段,并使用 Sqlitedbhelper 从生成每个数据库刮?

4

2 回答 2

1

作为 StorIO 开发人员,我将回答有关 StorIO 中对多个数据库的支持:

有可能,StorIO 不会限制您使用的数据库数量,只需根据StorIOSQLite需要创建尽可能多的实例,并将适用于不同数据库的唯一性传递SQLiteOpenHelperStorIOSQLite. StorIOSQLite我们团队的唯一建议——每个数据库使用一个实例。

根据文档,GreenDAO 和 DbFlow 应该能够与多个数据库一起工作。

看起来 Realm 不允许您使用多个数据库,因为它在他们的 SDK 中是一个单例:Realm.getInstance(context). 编辑:领域可以处理多个数据库(见答案的评论)。

于 2015-11-21T00:14:37.777 回答
0

我已经多次使用 greenDAO,这看起来很容易。你可以看看这里

基本上,您可以通过名称指定在初始化 DaoMaster 时要使用的 db,如下所示:

DevOpenHelper helper = new DaoMaster.DevOpenHelper(this, "your-db-name", null);
SQLiteDatabase db = helper.getWritableDatabase();
DaoMaster daoMaster = new DaoMaster(db);
DaoSession daoSession = daoMaster.newSession();

// After the initialization, you can get your DAO's and start working
SomeDao someDao = daoSession.getSomeDao();

我不知道你是否熟悉greenDAO,但是所有需要的类都是使用生成器模块自动生成的。你可以在这里找到一个很好的教程,解释如何在 Android Studio 中使用它。

于 2015-11-21T10:54:51.237 回答