Android Room的使用详解
一:Room的基本介绍
Room 是 Android 架构组件的一部分,Room 持久性库在 SQLite
上提供了一个抽象层,以便在充分利用 SQLite 的强大功能的
同时,能够流畅地访问数据库。具体来说,Room 具有以下优势:
- 针对 SQL 查询的编译时验证。
- 可最大限度减少重复和容易出错的样板代码的方便注解。
- 简化了数据库迁移路径
二:Room 库由 3 个主要组件组成:
实体:
Entity 表示数据库中的一个表,必须用@Entity 进行注释。每个实体至少包含一个字段,必须定义一个主键。
DAO(数据库访问对象):
在 Room 中,您可以使用数据访问对象来访问和管理您的数据。DAO 是 Room 的主要组件,包括提供对您的应用程序数据库的访问的方法,它必须用@Dao注释。使用 DAO 代替查询构建器,让您分离数据库的不同组件,例如当前数据和统计信息,这使您可以轻松测试数据库。
数据库:
作为数据库持有者,是关系数据的主要访问点。它必须用@Database注释并扩展RoomDatabase。它还包含并返回 Dao(数据库访问对象)。
三:在 Android 应用程序中实现Room数据库
第一步:创建一个 Empty Activity 项目
创建一个空的活动项目,并选择Kotlin作为语言。
第二步:添加所需的依赖项
将以下依赖添加到应用级gradle 文件中。通过转到
ProjectName -> src -> build.gradle.
dependencies {
val room_version = "2.4.3"
implementation("androidx.room:room-runtime:$room_version")
annotationProcessor("androidx.room:room-compiler:$room_version")
// To use Kotlin annotation processing tool (kapt)
kapt("androidx.room:room-compiler:$room_version")
// To use Kotlin Symbol Processing (KSP)
ksp("androidx.room:room-compiler: