MST

星途 面试题库

面试题:Kotlin中如何在Android Room数据库创建一个简单的数据表

请用Kotlin代码示例展示在Android Room数据库中创建一个包含`id`(自增长主键)、`name`(字符串类型)和`age`(整型)字段的数据表的过程,包括相关实体类、数据库接口和创建数据库的代码。
27.0万 热度难度
编程语言Kotlin

知识考点

AI 面试

面试题答案

一键面试
  1. 实体类(Data Class)
import androidx.room.Entity
import androidx.room.PrimaryKey

@Entity(tableName = "users")
data class User(
    @PrimaryKey(autoGenerate = true)
    val id: Int = 0,
    val name: String,
    val age: Int
)
  1. 数据库接口(DAO - Data Access Object)
import androidx.room.Dao
import androidx.room.Insert
import androidx.room.Query

@Dao
interface UserDao {
    @Insert
    suspend fun insertUser(user: User)

    @Query("SELECT * FROM users")
    suspend fun getAllUsers(): List<User>
}
  1. 创建数据库的代码
import androidx.room.Database
import androidx.room.Room
import androidx.room.RoomDatabase
import android.content.Context

@Database(entities = [User::class], version = 1)
abstract class AppDatabase : RoomDatabase() {
    abstract fun userDao(): UserDao

    companion object {
        @Volatile
        private var INSTANCE: AppDatabase? = null

        fun getDatabase(context: Context): AppDatabase {
            return INSTANCE ?: synchronized(this) {
                val instance = Room.databaseBuilder(
                    context.applicationContext,
                    AppDatabase::class.java,
                    "user_database"
                )
                   .build()
                INSTANCE = instance
                instance
            }
        }
    }
}