Android学习-使用ROOM将数据保存到本地数据库

Android学习-使用ROOM将数据保存到本地数据库

  • ROOM介绍
    • 含义
    • 如何导入ROOM库
    • ROOM组件
  • 使用ROOM将数据保存到本地数据库
    • 建库
    • 对数据表中数据操作

ROOM介绍

含义

Room持久库提供了一个SQLite抽象层,让访问数据库更加稳健,提升数据库性能。

该库帮助您在运行应用程序的设备上创建应用程序的数据缓存。这个缓存是你的应用程序唯一的真实来源,允许用户查看应用程序中关键信息的一致副本,而不管用户是否有Internet连接。

如何导入ROOM库

添加依赖(官方文档里不同版本ROOM有各自的说明)
kotlin用不到的话可以删掉,减少构建时的下载数量

dependencies {
    def room_version = "1.1.1"

    implementation "android.arch.persistence.room:runtime:$room_version"
    annotationProcessor "android.arch.persistence.room:compiler:$room_version" // use kapt for Kotlin

    // optional - RxJava support for Room
    implementation "android.arch.persistence.room:rxjava2:$room_version"

    // optional - Guava support for Room, including Optional and ListenableFuture
    implementation "android.arch.persistence.room:guava:$room_version"

    // Test helpers
    testImplementation "android.arch.persistence.room:testing:$room_version"
}

ROOM组件

Room有3个主要的组件:

Database:包含数据库持有者,并充当与应用程序持久化的、关系型的数据的底层连接的主要访问点。

用@Database注解的类应满足以下条件:

1.是一个继承RoomDatabase的抽象类。
2. 在注释中包含与数据库相关联的实体列表。
3.包含一个具有0个参数的抽象方法,并返回用@Dao注释的类。

在运行时,可以通过调用Room.databaseBuilder()Room.inMemoryDatabaseBuilder() 获取数据库实例。

Entity:表示数据库内的表。

DAO: 包含用于访问数据库的方法。

关系:
Android学习-使用ROOM将数据保存到本地数据库_第1张图片

使用ROOM将数据保存到本地数据库

Room在SQLite上提供了一个抽象层,以便在发挥SQLite能力的同时允许流畅的数据库访问。

处理复杂的结构化数据的应用程序可以极大地受益于本地数据的持久化。最常见的用例是缓存相关的数据片段。这样,当设备无法访问网络时,用户仍然可以在离线时浏览该内容。在设备返回联机之后,任何用户发起的内容更改都会同步到服务器。

建库

加入依赖,分别创建三个类
在实体中添加字段
DAO是一个关键的接口

对数据表中数据操作

参考 [3]:https://blog.csdn.net/u011897062/article/details/82107709

参考[1]:https://www.bilibili.com/video/BV1vk4y197kF?from=search&seid=3590254425450898408
[2]:https://www.bilibili.com/video/BV1ct411K7tp?from=search&seid=4918788308180896716
[3]:https://blog.csdn.net/u011897062/article/details/82107709

你可能感兴趣的:(Android)