Room(1)

  1. Entity
    一个实体类

@Entity
标记为实体类
@PrimaryKey(autoGrenerate = true)
标记为主键
表示自动生成
@ColumnInfo(name = “xxx”)
表示列的名称

  1. Dao
    一个关键的接口

@Dao
Database access object 访问数据库操作的接口
数据库的增删改查操作都要在这里声明
@Insert
插入
@Update
修改
@Delete
删除
@Query(“DELETE FROM WORD”)
清空WORD所有
@Query(“SELECT * FROM WORD ORDER BY ID DESC”)
查询WORD返回所有的内容
ORDER BY ID排序方式
DESC降序

  1. Database
    一个抽象类

@Database()
4个参数
第一个参数是 entities = {Word.class,…}有多个Entity实体类则用逗号隔开
第一个参数kotlin写法 entities = [Word::class,…]
第二个参数是 version 每一次数据库结构发生改变 版本都必须修改
第三个参数是 exportSchema = false
第四个参数 若有多个Entity,则应该写多个Dao

然后在抽象类里面返回一个抽象的函数原型
abstract fun getWordDao() : WordDao

对于数据库操作不可放在主线程下
.allowMainThreadQueries()可强制在主线程执行

Word.kt

Room(1)

WordDao.kt

Room(1)

WordDatabase.kt

Room(1)
MainActivity.kt

Room(1)

Room(1)