This program creates an in-memory database, adds two users, and prints them.
import androidx.room.*
import android.content.Context
import kotlinx.coroutines.runBlocking
@Entity(tableName = "users")
data class User(
@PrimaryKey val id: Int,
val name: String
)
@Dao
interface UserDao {
@Insert
suspend fun insert(user: User)
@Query("SELECT * FROM users")
suspend fun getAll(): List<User>
}
@Database(entities = [User::class], version = 1)
abstract class AppDatabase : RoomDatabase() {
abstract fun userDao(): UserDao
}
fun main() {
// Normally, you get context from Android app, here we simulate
val context = androidx.test.core.app.ApplicationProvider.getApplicationContext<Context>()
val db = Room.inMemoryDatabaseBuilder(context, AppDatabase::class.java)
.allowMainThreadQueries()
.build()
val userDao = db.userDao()
runBlocking {
userDao.insert(User(1, "Alice"))
userDao.insert(User(2, "Bob"))
val users = userDao.getAll()
users.forEach { println("User: ${it.id} - ${it.name}") }
}
}