SQlite数据库VS房间持久性库

Far*_*ali 22 sql database sqlite android android-room

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

希望有人能给我明确答案.

San*_*alp 52

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

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

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

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

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

以下是媒体文章的链接,详细解释了Room持久性库的用法和优点.我希望这有帮助.

编辑1:您可以参考Google开发人员文档,该文档清楚地解释了如何使用空间在本地数据库中保存数据.链接到Google Developer Docs

  • 好的,清晰的答案总结了使用Room的主要好处。我唯一要说的是,所提供的链接只是对官方文档的重新混搭(但细节和清晰度较低)。我建议参考Google开发人员文档,而不是https://developer.android.com/training/data-storage/room/ (5认同)