前言
Room持久性库在 SQLite 的基础上提供了一个抽象层,让用户能够在充分利用 SQLite 的强大功能的同时,获享更强健的数据库访问机制。
一、添加依赖
build.gradle (Module: app) 文件顶部定义的 Plugins 插件部分后,从而应用此插件。
apply plugin: 'kotlin-kapt'
在 android 块中添加 packagingOptions 块,以从软件包中排除原子函数模块并防止出现警告
android {
// other configuration (buildTypes, defaultConfig, etc.)
packagingOptions {
exclude 'META-INF/atomicfu.kotlin_module'
}
kotlinOptions {
jvmTarget = "1.8"
}
}
在将 dependencies 块添加如下依赖
implementation "androidx.room:room-runtime:2.2.5"
annotationProcessor "androidx.room:room-compiler:2.2.5"
二、使用步骤
1.创建entities类
Room 为每个用@Entity
注释的类创建一个表类中的字段对应于表中的列。因此,entities类往往是不包含任何逻辑的小型模型类
注意:
- 要使用
@Entity
注释类并声明 tableName 属性设置表的名称。 - 通过将
@PrimaryKey
注释添加到正确的字段来设置主键——在下面的主键是用户的 ID。 - 使用
@ColumnInfo(name = “column_name”)
注释为类字段设置列的名称。 - 如果多个构造函数都合适,则添加
@Ignore
批注以告诉 Room 哪些应该使用哪些不应该使用。
@Entity(tableName = "Notes")
data class Notes (
@PrimaryKey(autoGenerate = true)
v