SQlite数据库VS会议室持久性库

时间:2018-06-01 19:39:41

标签: android sql database sqlite android-room

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

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

1 个答案:

答案 0 :(得分:33)

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

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

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

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

  1. @Entity-定义我们的数据库表
  2. @DAO —提供用于读取和写入数据的API
  3. @Database-代表数据库所有者

此处是中篇文章的link,其中详细说明了Room Persistence库的用法和优点。 我希望这会有所帮助。

编辑1:您可以参考Google开发者文档,其中清楚地说明了如何使用Room将数据保存到本地数据库中。 Link to Google Developer Docs