본문 바로가기

Android/Function

[Android] Room + RxJava 정리

728x90
반응형
  • Dependecy
    // Room components
    def roomVersion = '2.3.0'
    implementation "androidx.room:room-runtime:$roomVersion"
    kapt "androidx.room:room-compiler:$roomVersion"
    implementation "androidx.room:room-ktx:$roomVersion"
    implementation "androidx.room:room-rxjava2:$roomVersion"
    androidTestImplementation "androidx.room:room-testing:$roomVersion"

    // RxJava
    implementation "io.reactivex.rxjava2:rxjava:2.2.17"
    implementation "io.reactivex.rxjava2:rxandroid:2.1.1"
    implementation 'com.squareup.retrofit2:adapter-rxjava2:2.8.1'
    implementation "io.reactivex.rxjava2:rxkotlin:2.4.0"

 

Dao

  • Insert
@Insert(onConflict = OnConflictStrategy.REPLACE)
fun insertReports(reports: ReportEntity): Single<Long>

반환되는 Long은 id이다.

 

  • getAll
@Query("SELECT * FROM report")
fun getAllReports(): Single<List<ReportEntity>>

@Query("SELECT * from activityfatigue_table ORDER BY id ASC")
fun getAllDataList(): Flowable<List<MuscleActivityFatigueData>>

 

  • ORDER BY
ASC 오름차순
DESC 내림차순

 

 

  • getBy
@Query("SELECT * FROM activityfatigue_table WHERE id = :id")
fun getDataById(id: Long): Flowable<MuscleActivityFatigueData>

@Query("SELECT * FROM report WHERE item = :item ORDER BY startTime DESC")
fun getReportsByItem(item: Int): Single<List<ReportEntity>>

@Query("SELECT * FROM report WHERE posted = 0")
fun getReportsUnposted(): Single<List<ReportEntity>>

 

  • deleteAll
@Query("DELETE FROM report")
fun deleteAllReports(): Completable

 

  • delete
@Delete
fun deleteData(data: MuscleActivityFatigueData): Completable

 

  • 특정 id delete
@Query("DELETE FROM device WHERE id = :id")
fun deleteDevice(id: Int): Completable

 

  • update
@Query("UPDATE report SET posted = :posted WHERE id = :id")
fun updatePosted(id: Long, posted: Boolean): Completable

 

728x90
반응형