请问是否可以在一个项目下拥有多个数据库,使用 Room Persistence Library?动态更改数据库的选择。 谢谢
最佳答案
这是可能的。 假设您有两组实体和两组 DAO。您可以通过以下方式获得对两个数据库的访问权限:
- 创建两个扩展 RoomDatabase 的类:
应用数据库 1:
@Database(entities = {/*... the first set of entities ...*/}, version = 1)
public abstract class AppDatabase1 extends RoomDatabase {
// the first set of DAOs
}
应用数据库2:
@Database(entities = {/*... the second set of entities ...*/}, version = 1)
public abstract class AppDatabase2 extends RoomDatabase {
// the second set of DAOs
}
- 实例化两个数据库:
请注意,您将使用两个不同的文件名。
AppDatabase db1 = Room.databaseBuilder(getApplicationContext(), AppDatabase1.class, "database1.db").build();
AppDatabase db2 = Room.databaseBuilder(getApplicationContext(), AppDatabase2.class, "database2.db").build();
在这种情况下,您可以使用这两个数据库,但您将无法在它们之间创建查询。如果您需要附加这两个数据库,那么您应该查看@Anees 提供的链接
关于Android - 多数据库一个项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52187050/