LiveData implementation "android.arch.lifecycle:extensions:$lifecycle_version" // alternatively - just ViewModel implementation "android.arch.lifecycle:viewmodel:$lifecycle_version" // use -ktx for Kotlin ※後述のViewModelを使うときに追加します // alternatively - just LiveData implementation "android.arch.lifecycle:livedata:$lifecycle_version" // alternatively - Lifecycles only (no ViewModel or LiveData). // Support library depends on this lightweight import implementation "android.arch.lifecycle:runtime:$lifecycle_version" annotationProcessor "android.arch.lifecycle:compiler:$lifecycle_version" // alternately - if using Java8, use the following instead of compiler implementation "android.arch.lifecycle:common-java8:$lifecycle_version" // optional - ReactiveStreams support for LiveData implementation "android.arch.lifecycle:reactivestreams:$lifecycle_version" // optional - Test helpers for LiveData testImplementation "android.arch.core:core-testing:$lifecycle_version" }
latest rc, use "1.1.1-rc1" implementation "android.arch.persistence.room:runtime:$room_version" annotationProcessor "android.arch.persistence.room:compiler:$room_version" // optional - RxJava support for Room implementation "android.arch.persistence.room:rxjava2:$room_version" // optional - Guava support for Room, including Optional and ListenableFuture implementation "android.arch.persistence.room:guava:$room_version" // Test helpers testImplementation "android.arch.persistence.room:testing:$room_version" } https://developer.android.com/topic/libraries/architecture/adding-components#room
users: User) @Update fun updateUsers(vararg users: User) @Delete fun deleteUsers(vararg uses:User) @Query("select * from user") fun queryEnabledUser() : LiveData<List<User>> }
fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) userList = Room.databaseBuilder(applicationContext,AppDatabase::class.java,"sample.db") .build() .userDao() .queryEnabledUser() } } java.lang.IllegalStateException: Cannot access database on the main thread since it may potentially lock the UI for a long period of time. at android.arch.persistence.room.RoomDatabase.assertNotMainThread(RoomDatabase.java:204) .allowMainThreadQueries()
fun queryEnabledUserLive() : LiveData<List<User>> @Query("select * from user") fun queryEnabledUser() : List<User> @Query("SELECT * FROM user WHERE id = :id") fun queryGet(id:Long) : Maybe<User> @Query("SELECT MAX(id) FROM user ") fun queryMaxUserId() : Long?