我需要为app中的每个用户创建一个新数据库,并且要有多个数据库在用户切换时更改。是否有任何现有的ORM如GreenDAO,Storio,DbFlow,Realm或Android的类似orm /库支持这一点,或者最好是徒步执行此操作,自己定义每个表和字段,并使用Sqlitedbhelper从中生成每个数据库划痕?
答案 0 :(得分:1)
作为StorIO开发人员,我将回答关于StorIO中多个数据库的支持:
有可能,StorIO不会限制您使用的数据库数量,只需根据需要创建尽可能多的StorIOSQLite
个实例,并将唯一可用于不同数据库的SQLiteOpenHelper
传递给每个StorIOSQLite
的实例。我们团队的唯一建议 - 每个数据库使用一个StorIOSQLite
实例。
根据文档,GreenDAO和DbFlow应该能够使用多个数据库。
看起来Realm不允许您使用多个数据库,因为它们是SDK中的单例:Realm.getInstance(context)
。编辑:Realm可以处理多个DB(请参阅答案的评论)。
答案 1 :(得分:0)
我已经多次使用过greenDAO,这看起来很简单。你可以看看here。
基本上,您可以按名称指定在启动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,但所有需要的类都是使用生成器模块自动生成的。你可以找到here一个很好的教程,解释如何在Android Studio中使用它。