我正在使用Room Persistence Library 1.1.0.我可以/data/data/<package_name>/databases/
使用Android Studio的Device File Explorer 找到数据库文件.它包含多个表,我可以使用room-DAO
s 访问该表的内容而没有任何问题.但是打开时sqlite-browser
,显示没有表格.
可能是什么原因?是否有可能解决这个问题,而无需切换回旧SQLiteOpenHelper
的/data/data/<package_name>/databases/
?
sqlite android sqlite-browser android-room sqlite-journal-mode
我正在使用Dagger 2在我的应用程序中创建和共享我的RoomDatabase.
我正在尝试实现addCallback(),因此我可以覆盖数据库的onCreate函数并使用它来插入我的初始数据库值.这是我遇到问题的地方.
我觉得我必须忽略一些显而易见的事情,但我无法找到一种方法来优雅地做到这一点.
RoomDatabase类:
@Database(
entities = [Station::class],
version = 1,
exportSchema = false
)
abstract class TrainDB : RoomDatabase() {
abstract fun stationDao() : StationDao
}
Run Code Online (Sandbox Code Playgroud)
DAO:
@Dao
abstract class StationDao {
@Insert(onConflict = OnConflictStrategy.REPLACE)
abstract fun insert(stations: Station)
@Query("SELECT * FROM station_table")
abstract fun getAll() : LiveData<List<Station>>
}
Run Code Online (Sandbox Code Playgroud)
匕首模块:
@Module
class DataModule {
@Singleton
@Provides
fun provideDb(app: Application): TrainDB {
var trainDB: TrainDB? = null
trainDB = Room
.databaseBuilder(app, TrainDB::class.java, "train.db")
.allowMainThreadQueries()
.fallbackToDestructiveMigration()
.addCallback(object : RoomDatabase.Callback() { …
Run Code Online (Sandbox Code Playgroud)