
1.依赖包
implementation'android.arch.persistence.room:runtime:1.1.1'
kapt 'android.arch.persistence.room:compiler:$rootProject.roomVersion'
2.Room的组成
1.Dao类
Dao类主要用来操作数据库,执行sql语句和一些事务的配置

@Dao 是Room的注解,以接口的形式暴露,其中增删改查都是以注解的方式表示,
例如:
@Query("SELECT * FROM Users WHERE userid = :id")
@Insert(onConflict = OnConflictStrategy.REPLACE)(room中事务的配置)

2.Entity类
该类用来配置数据库的表名和一些数据库的配置

3.AppDatabase类
提供给开发者使用的appDatabase,可操作数据库的实现类

关键代码:
Room.databaseBuilder(context.applicationContext, UsersDatabase::class.java, "Sample.db").build()
注意事项:
1.在调试的时候,每次更改数据的配置,需要更改数据库的version,或者清除app的数据库
2.添加这行代码javaCompileOptions {
annotationProcessorOptions {
arguments = ["room.schemaLocation":"$projectDir/schemas".toString()]}}
3.查看数据库,打开Device File explorer

找到data目录下data下对应的包名下的databases下的图片三个文件,全部导出之后,用SQLiteStudio查看即可(或者Android Studio的插件)

网友评论