web-dev-qa-db-ja.com

SQliteデータベースVSルーム永続化ライブラリ

ROOMデータベースの違いと利点を見つけるために、試験プロジェクトに助けが必要です。これらの2つのデータベースの違いを理解するためにAndroid開発ドキュメントを検索しようとしましたが、はっきり理解できませんでした。スタックオーバーフローにも答えが見つかりませんでした。また、SQLiteデータベースと比較して、部屋の永続性を使用する利点を知りたいです。

誰かが私に明確な答えを与えてくれることを願っています。

20
Farhad Ba-ali

ルームは、ORM、オブジェクトリレーショナルマッピングライブラリです。つまり、RoomはデータベースオブジェクトをJavaオブジェクトにマップします。 Roomは、SQLiteの抽象化レイヤーを提供し、SQLiteのフルパワーを活用しながら、流fluentなデータベースアクセスを可能にします。

SQLiteとRoom永続ライブラリの違い:-

  • SQLiteの場合、生のSQLiteクエリのコンパイル時検証はありません。ただし、Roomにはコンパイル時にSQL検証があります。
  • スキーマが変更されると、影響を受けるSQLクエリを手動で更新する必要があります。部屋はこの問題を解決します。
  • 多くの定型コードを使用して、SQLクエリとJavaデータオブジェクトを変換する必要があります。ただし、RoomはデータベースオブジェクトをJava Objectにボイラープレートコードなしでマップします。
  • ルームは、データ観測のためにLiveDataおよびRxJavaと連携するように構築されていますが、SQLiteは連携していません。

部屋の注釈と主なコンポーネント:

  1. @Entity —データベーステーブルを定義する
  2. @DAO —データの読み取りおよび書き込み用のAPIを提供する
  3. @Database —データベースホルダーを表します

ルーム永続化ライブラリの使用法と利点について詳しく説明している中記事への リンク です。これがお役に立てば幸いです。

編集1:Google開発者向けドキュメントを参照すると、部屋を使用してローカルデータベースにデータを保存する方法が明確に説明されています。 Google Developer Docsへのリンク

46
Sankalp