
1.依賴包
implementation'android.arch.persistence.room:runtime:1.1.1'
kapt 'android.arch.persistence.room:compiler:$rootProject.roomVersion'
2.Room的組成
1.Dao類
Dao類主要用來操作數(shù)據(jù)庫,執(zhí)行sql語句和一些事務(wù)的配置

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

2.Entity類
該類用來配置數(shù)據(jù)庫的表名和一些數(shù)據(jù)庫的配置

3.AppDatabase類
提供給開發(fā)者使用的appDatabase,可操作數(shù)據(jù)庫的實現(xiàn)類

關(guān)鍵代碼:
Room.databaseBuilder(context.applicationContext,? UsersDatabase::class.java, "Sample.db").build()
注意事項:
1.在調(diào)試的時候,每次更改數(shù)據(jù)的配置,需要更改數(shù)據(jù)庫的version,或者清除app的數(shù)據(jù)庫
2.添加這行代碼javaCompileOptions {
annotationProcessorOptions {
arguments = ["room.schemaLocation":"$projectDir/schemas".toString()]}}
3.查看數(shù)據(jù)庫,打開Device? File explorer

找到data目錄下data下對應(yīng)的包名下的databases下的圖片三個文件,全部導出之后,用SQLiteStudio查看即可(或者Android Studio的插件)
