Android - 多数据库一个项目

标签 android android-room

请问是否可以在一个项目下拥有多个数据库,使用 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/

相关文章:

java - Android Room 插入所有问题

android - 构建Android应用程序时出错

java - 抛出 OutOfMemoryError 异常

java - Android JSONObject 说 "no value for name",而 "name"项肯定存在

android - androidx.legacy :legacy-support-v4: dependency 有什么用

android - 寻呼图书馆和房间 : Content not loading when Recyclerview scroll

android-room - 插入房间后的行

java - Android 如何确定将哪个缓冲区用于 logcat 消息?

android - ListView 和可变高度项目导致滚动问题

java - 我们可以直接实例化一个抽象类吗?