This example shows how to set up Room with a User table, insert a user, and fetch all users.
import android.content.Context
import androidx.room.*
@Entity
data class User(
@PrimaryKey val id: Int,
val name: String
)
@Dao
interface UserDao {
@Insert
suspend fun insert(user: User)
@Query("SELECT * FROM User")
suspend fun getAll(): List<User>
}
@Database(entities = [User::class], version = 1)
abstract class AppDatabase : RoomDatabase() {
abstract fun userDao(): UserDao
}
// Usage example in a coroutine scope
suspend fun demoRoom(context: Context) {
val db = Room.databaseBuilder(
context.applicationContext,
AppDatabase::class.java, "app-db"
).build()
val userDao = db.userDao()
userDao.insert(User(1, "Alice"))
val users = userDao.getAll()
println(users.joinToString())
}