组件
Room由三个重要的组件组成:Database、Entity、DAO。
-
Database:包含数据库持有者,并作为与应用持久关联数据的底层连接的主要访问点。而且Database对应的类必须满足下面几个条件:
1. 必须是abstract类而且的extends RoomDatabase。
2. 必须在类头的注释中包含与数据库关联的实体列表(Entity对应的类)。
3. 包含一个具有0个参数的抽象方法,并返回用@Dao注解的类。
在运行时,你可以通过Room.databaseBuilder() 或者 Room.inMemoryDatabaseBuilder()获取Database实例。 -
Entity:代表数据库中某个表的实体类。
-
DAO:包含用于访问数据库的方法。
添加依赖
//add for room
implementation "android.arch.persistence.room:runtime:1.1.1"
annotationProcessor "android.arch.persistence.room:compiler:1.1.1" // use kapt for Kotlin
- User类
//表名不区分大小写
@Entity(tableName = "users", indices = {
@Index("firstName"), @Index(value = {
"lastName", "address"}, unique = true)