开发前的准备工作
- 添加依赖
implementation "android.arch.persistence.room:runtime:1.1.1"
annotationProcessor "android.arch.persistence.room:compiler:1.1.1"
- schemas生成的路径设置
android {
defaultConfig {
javaCompileOptions {
annotationProcessorOptions {
//room的数据库概要、记录
arguments = ["room.schemaLocation":
"$projectDir/schemas".toString()]
}
}
}
sourceSets {
//数据库概要、记录存放位置
androidTest.assets.srcDirs += files("$projectDir/schemas".toString())
}
}
数据表的生成
- 实体类即数据表的生成
@Entity(tableName = "users")//标注为数据表,默认为实体类的名称,也可以自定义表名
//@Entity(primaryKeys = {"firstName", "lastName"})复合主键
//@Entity(indices = {@Index("name"),@Index(value = {"last_name", "address"})})为列添加索引
//@Entity(foreignKeys = @ForeignKey(entity = User.class,
// parentColumns = "id",
// childColumns = "user_id",
// onDelete = CASCADE))
//为数据表添加外键
//有时候,某个字段或者几个字段必须是唯一的。你可以通过把@Index注解的unique属性设置为true来实现
//唯一性。下面的代码防止了一个表中的两行数据出现firstName和lastName字段的值相同的情况:
//@Entity(indices = {&#