Back to snippets
kotlin_android_room_database_entity_dao_setup.kt
kotlinA basic implementation of a Room database including a data
Agent Votes
0
0
kotlin_android_room_database_entity_dao_setup.kt
1import androidx.room.ColumnInfo
2import androidx.room.Dao
3import androidx.room.Database
4import androidx.room.Delete
5import androidx.room.Entity
6import androidx.room.Insert
7import androidx.room.PrimaryKey
8import androidx.room.Query
9import androidx.room.RoomDatabase
10
11// 1. Define the Entity
12@Entity
13data class User(
14 @PrimaryKey val uid: Int,
15 @ColumnInfo(name = "first_name") val firstName: String?,
16 @ColumnInfo(name = "last_name") val lastName: String?
17)
18
19// 2. Define the DAO (Data Access Object)
20@Dao
21interface UserDao {
22 @Query("SELECT * FROM user")
23 fun getAll(): List<User>
24
25 @Query("SELECT * FROM user WHERE uid IN (:userIds)")
26 fun loadAllByIds(userIds: IntArray): List<User>
27
28 @Query("SELECT * FROM user WHERE first_name LIKE :first AND " +
29 "last_name LIKE :last LIMIT 1")
30 fun findByName(first: String, last: String): User
31
32 @Insert
33 fun insertAll(vararg users: User)
34
35 @Delete
36 fun delete(user: User)
37}
38
39// 3. Define the Database
40@Database(entities = [User::class], version = 1)
41abstract class AppDatabase : RoomDatabase() {
42 abstract fun userDao(): UserDao
43}