前言
Room 是官方推出的一个在 SQLite 上提供抽象层的持久存储库,提供了强大而可靠的 SQL 对象映射能力,并且支持 LiveData
和 RxJava
。
在项目中添加以下依赖
def room_version = "2.1.0-alpha04"
def lifecycle_version = "2.0.0"
def rxjava_version = '2.1.7'
def rxandroid_version = '2.1.0'
// Room
implementation "androidx.room:room-runtime:$room_version"
kapt "androidx.room:room-compiler:$room_version"
implementation "androidx.room:room-rxjava2:$room_version"
// RxJava
implementation "io.reactivex.rxjava2:rxjava:$rxjava_version"
implementation "io.reactivex.rxjava2:rxandroid:$rxandroid_version"
// ViewModel and LiveData
implementation "androidx.lifecycle:lifecycle-extensions:$lifecycle_version"
implementation 'com.google.code.gson:gson:2.8.5'
// 查看数据库
implementation 'com.facebook.stetho:stetho-okhttp3:1.5.0'
当异步查询数据的时候,返回的对象可以是一个 LiveData
或者 Flowable
。如:
@Query("SELECT * FROM user")
abstract fun getAllUsers(): Flowable<List<User>>
@Query("SELECT * FROM user")
abstract fun getAllUser()