【项目实战】使用Room完成Android的存储

一、Room简介

Room是Google推出的数据库框架,Google Android 官方团队去维护
Room是一个 ORM (Object Relational Mapping)对象关系映射数据库
使用ORM可以让开发者更加关注业务逻辑,而不是SQL 语句。
ORM ROOM 是当前最值得使用的Android数据库框架。

二、Android开发常用的数据库

国内Android开发常用的数据库有GreenDao,Realm,DBFlow,LitePal.

2.1 GreenDao

缺点是配置复杂,不支持监听数据表/Kotlin/协程等特性,且目前已经不再积极维护。

2.2 Realm

不是基于SQLite ,底层用C语言写的,号称速度比 SQLite 快 10 倍。
跨平台,支持多种平台设备,支持RxJava/Kotlin, 但不支持嵌套类而且要求字段指定默认值。
要求导入JNI库, 会导致apk体积增加, 函数设计比较复杂, 官方图形工具相对简陋但实时更新。

2.3 DBFlow

主要使用函数操作数据库, 学习成本高,原生支持数据库加密,支持监听数据库,支持协程/Kotlin/RxJava, 在国内比较冷门。

2.4 LitePal

是国内Android开发者郭霖开源并维护的,也是对SQLite数据库的再次封装,方便调用。

三、Room Vs SQLite

Room底层还是对SQLite的封装。 Room 在 SQLite 上提供了一个抽象层,以便在充分利用 SQLite 的强大功能的同时,能够流畅地访问数据库。

四、Room的优点

具体来说,Room 具有以下优势:

  • 优秀的效率,支持内存映射,支持LiveData绑定
  • 编译期检查
    (Room会在编译的时候验证每个@Query和@Entity等
    它不仅检查语法问题,还会检查是否有该表
    这就意味着几乎没有任何运行时错误的风险)
  • 简化了数据库迁移路径。

五、Room的三大组件

Room 包含三个主要组件

5.1 数据库类(DataBase)

用于保存数据库并作为应用持久性数据底层连接的主要访问点。

5.2 数据实体(Entity)

用于表示应用的数据库中的表。

5.3 数据访问对象 (DAO)

提供您的应用可用于查询、更新、插入和删除数据库中的数据的方法。

猜你喜欢

转载自blog.csdn.net/wstever/article/details/132906642