Room
用途
Room 在 SQLite 之上提供访问层,可在编译时检查 SQL 查询,并把结果映射到 Kotlin/Java 对象。适合保存本地结构化数据;它不负责服务端同步,也不会自动决定业务中的冲突处理策略。
| 组成 | 职责 |
|---|---|
| Entity | 用 @Entity 描述表结构,用 @PrimaryKey 标识主键 |
| DAO | 用 @Dao 定义查询、插入和更新接口;查询通过 @Query 声明 |
| Database | 继承 RoomDatabase,声明 entities 和数据库版本,并提供 DAO 入口 |
使用时需要补齐的条件
- 根据项目的 Room 版本选择对应的依赖和注解处理方式,版本以项目配置为准。
- 默认情况下,Room 不允许在主线程访问数据库;采用适合项目的异步调用方式。
- 表结构变化需要处理版本与迁移。破坏性迁移会删除已有数据,不能作为默认升级方案。
下一步记录:结合实际项目补充 Entity、DAO、数据库创建及迁移验证示例。当前页只记录基础结构,尚未包含项目实践。
来源:Android 官方 Room 文档 (opens new window)、数据库迁移 (opens new window)。
上次更新: 2026/10/18, 22:14:48