【Jetpack】使用 Room 框架访问 Android 平台 SQLite 数据库 ( 导入依赖 | 定义 Entity 实体类 | 定义 Dao 数据库访问对象接口 | 定义数据库实例类 )
// 在 build.gradle 文件中为你的项目添加 Room 依赖项
dependencies {
// 其他依赖...
// 添加 Room 库
implementation "androidx.room:room-runtime:2.2.5"
annotationProcessor "androidx.room:room-compiler:2.2.5"
// 如果你需要 RxJava 支持
implementation "androidx.room:room-rxjava2:2.2.5"
// 如果你需要 Guava 库的支持
implementation "androidx.room:room-guava:2.2.5"
// 测试相关的依赖
testImplementation "androidx.room:room-testing:2.2.5"
}
// 定义一个实体类(Entity),它映射到数据库的一个表
@Entity(tableName = "users")
data class User(
@PrimaryKey val uid: Int,
@ColumnInfo(name = "first_name") val firstName: String?,
@ColumnInfo(name = "last_name") val lastName: String?
)
// 定义一个 DAO 接口,它包含访问数据库的方法
@Dao
interface UserDao {
@Query("SELECT * FROM users WHERE uid = :id")
fun getUser(id: Int): User
@Insert
fun insertUser(user: User)
// 其他数据库操作方法...
}
// 定义数据库类,它包含 DAO 类的引用
@Database(entities = [User::class], version = 1)
abstract class AppDatabase : RoomDatabase() {
abstract fun userDao(): UserDao
}
// 在应用程序中使用 Room 数据库
val db = Room.databaseBuilder(applicationContext, AppDatabase::class.java, "database-name").build()
val userDao = db.userDao()
这个代码示例展示了如何在 Android 项目中使用 Room 来定义实体、DAO 接口和数据库类。这是一个简化的示例,实际应用中你可能需要根据具体的数据库结构和操作来扩展这些类。
评论已关闭