前言
简化过的 Room 提供了一个对象映射抽象层,以便在使用SQLite强大功能的同时能够更加流畅的访问数据库。
Room 中有三个主要的组件:
- Database: 通过该组件你可以创建持有操作数据库的对象。注解定义了实体的列表,类的内容定义了从数据库中获取数据的对象(DAO),同时它也是底层连接的主要入口。
注: 此组件一个继承自RoomDatabase的抽象类。代码中可以通过调用Room.databaseBuilder或Room.inMemoryDatabaseBuilder()来获得一个实例。
Entity: 此组件表示持有数据库中的一个表的类,对应到表的一行数据, 除非有显式的@Ignore注解,实体中的每个属性都将被持久化到数据库里面。
DAO: 此组件是 Room 的主要组件, 作为数据访问对象(DAO)的类或接口。负责定义访问数据库的一系列CURD方法。
注: 使用@Database注解的类必须包含一个0参数的,返回类型为@Dao注解过的类的抽象方法,Room会在编译时生成这个类的实现。
导入到项目
使用Android Studio 2.3或更高的版本
- 往项目根目录的build.grdle添加如下
|
|
注: 编译过程可能遇到链接不到maven的问题, 将maven { url ‘https://maven.google.com‘ } 换成 maven { url “https://dl.google.com/dl/android/maven2/"} 便可
- app的build.gradle添加如下依赖库
|
|
代码示例
声明数据表结构
|
|
声明数据访问对象的CURD操作
|
|
创建持有数据库操作的对象
|
|
获得数据库实例,简单的添加几条记录,然后查询
|
|
更多细节请参见 Room Persistence Library