SQlite 数据库 VS Room 持久化库

SQlite Database VS Room persistence library

我的考试项目需要帮助,以找出 ROOM 数据库的差异和优势: 我试图在 android 开发文档中搜索以了解这两个数据库之间的区别,但我无法清楚地理解。 我也没有在堆栈溢出中找到任何答案。 我还想知道与 SQLite 数据库相比,使用 Room 持久性的好处。

希望有人能给我明确的答案。

Room 是一个 ORM,对象关系映射库。换句话说,Room 会将我们的数据库对象映射到 Java 个对象。 Room 在 SQLite 上提供了一个抽象层,以允许流畅的数据库访问,同时利用 SQLite 的全部功能。

SQLite 和 Room 持久性库之间的区别:-

  • 在 SQLite 的情况下,原始 SQLite 查询没有编译时验证。但在 Room 中,编译时有 SQL 验证。
  • 随着架构的变化,您需要手动更新受影响的 SQL 查询。 Room解决了这个问题。
  • 您需要使用大量样板代码在 SQL 查询和 Java 数据对象。但是,Room 将我们的数据库对象映射到 Java 没有样板代码的对象。
  • Room 可以与 LiveData 和 RxJava 一起用于数据观察,而 SQLite 则不能。

房间注释和主要组成部分:

  1. @Entity — 定义我们的数据库表
  2. @DAO 提供一个API用于读写数据
  3. @Database — 表示一个数据库持有者

这里是 link 的 medium 文章,它详细解释了 Room 持久性库的用法和好处。 希望对您有所帮助。

编辑1:您可以参考Google开发者文档,里面清楚地解释了如何使用room将数据保存在本地数据库中。 Link to Google Developer Docs