我想将 Room 与预填充的数据库一起使用,但我不明白如何告诉 Room 在哪里可以找到我的数据库。
我现在已经把它放进去了src/main/assets/databases
当我为 Room 数据库创建实例时,我这样创建:
Room.databaseBuilder(
getApplicationContext(),
AppDatabase.class,
"justintrain.db"
)
.allowMainThreadQueries()
.build();
这样,我认为它每次都会创建一个新数据库,或者无论如何,它不会使用预先填充的数据库。
我怎样才能找到我的数据库?
这就是我解决这个问题的方法,以及如何使用预先填充的数据库(最高可达 Room v. alpha5)来交付应用程序
把你的 SQLite 数据库database_name.db
进入assets/databases
folder
拿走文件从这个仓库并将它们放入一个名为 i.e. 的包中sqlAsset
-
in your AppDatabase
类,相应地修改您的 Room 的数据库创建代码:
Room.databaseBuilder(context.getApplicationContext(),
AppDatabase.class,
"database_name.db")
.openHelperFactory(new AssetSQLiteOpenHelperFactory())
.allowMainThreadQueries()
.build();
请注意,您必须使用"database_name.db"
并不是getDatabasePath()
或其他方法:它只需要文件名。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)