Jetpack-Room

Room

SQLite数据的抽象(Google官方的ORM数据库,原生支持LiveData。当Room数据库中的数据发生变化时,LiveData使数据的订阅者能及时得到通知,而无须从数据库重新获取数据。)

负责数据的存储

目的:流畅地访问SQLite数据库

Room.jpg

Entity:实体类

Dao:(Database access object)用来操作数据库

Migration:数据库升级

Async Task:数据库用异步任务来完成(免得ANR)

Repository:仓库。用来对数据和应用的解耦隔离,使得数据的读取都放到这里面来实现

RecyclerView:可回收的View。结合RecyclerView Adapter来使用

Room的架构图

  • Entity:一个Entity对应数据库中的一张表。Entity类是Sqlite表结构对Java类的映射,在Java中可被看作一个Model类。
  • Dao:即Data Access Objects,数据访问对象。可通过它来访问数据。

一个Entity代表一张表,每张表都要一个Dao对象,用于“增删查改”。Room数据库在被实例化之后,我们可通过数据库实例得到Dao对象(Get Dao),进而通过Dao对象对表中的数据进行操作。

查看data/包名/database/下的database文件

方法一:使用DB Browser软件打开查看

方法二:安装插件:Database Navigator,在Android Studio中直接查看SQLite文件

Room基本用法

1
2
3
4
dependencies{
implementation "andoridx.room:room-runtime:2.2.2"
annotationProcessor "andoridx.room:room-compiler:2.2.2"
}