Room(1)
- Entity
一个实体类
@Entity
标记为实体类
@PrimaryKey(autoGrenerate = true)
标记为主键
表示自动生成
@ColumnInfo(name = “xxx”)
表示列的名称
- 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降序
- Database
一个抽象类
@Database()
4个参数
第一个参数是 entities = {Word.class,…}有多个Entity实体类则用逗号隔开
第一个参数kotlin写法 entities = [Word::class,…]
第二个参数是 version 每一次数据库结构发生改变 版本都必须修改
第三个参数是 exportSchema = false
第四个参数 若有多个Entity,则应该写多个Dao
然后在抽象类里面返回一个抽象的函数原型
abstract fun getWordDao() : WordDao
对于数据库操作不可放在主线程下
.allowMainThreadQueries()可强制在主线程执行
Word.kt
WordDao.kt
WordDatabase.kt
MainActivity.kt