2. 依存関係を追加する
1 2 3 |
|
2、主体
エンティティはデータベース内のテーブルを表すクラスを指し、アノテーションを使用してテーブル内の列を定義できます。次の例に示すように、エンティティ クラスには少なくとも 1 つの主キー フィールドが必要であり、他のフィールドを含めることもできます。
1 2 3 4 5 6 |
|
3、ダオ
DAO はデータ アクセス オブジェクトを指し、データベースへのアクセス方法を定義するために使用されます。アノテーションを使用して SQL クエリを指定でき、Room が提供する一部のクエリ メソッドも使用できます。たとえば、いくつかの基本的なクエリを含む DAO の例を次に示します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
|
4、データベース
データベースは、バージョン番号やエンティティ クラスのリストなど、データベースに関連する構成情報を含むデータベース オブジェクトを指します。次の例に示すように、アノテーションを使用して、データベース構成情報と含まれるエンティティ クラスを指定できます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
|
5. DAOインスタンスを取得する
Database オブジェクトのインスタンス メソッドを使用して、DAO インターフェイスのインスタンスを取得します。
1 2 |
|
6. DAO メソッドを呼び出す
DAOインターフェースのインスタンスメソッドを使用してデータベースにアクセスします。
1 2 3 4 5 6 7 |
|
7. 使用手順
上記は Room の 3 つの主要なコンポーネントであり、次に Room を使用するための基本的な手順をいくつか示します。
- 依存関係の追加: Room ライブラリの依存関係をプロジェクトの build.gradle ファイルに追加します。
- エンティティ クラスの作成: データベース内のテーブルを表す 1 つ以上のエンティティ クラスを作成します。
- DAO インターフェイスの作成: 1 つ以上の DAO インターフェイスを作成して、データベースにアクセスするためのメソッドを定義します。
- Database オブジェクトを作成する: RoomDatabase から継承してデータベース オブジェクトを表す抽象クラスを作成し、 @Database アノテーションを使用してデータベースと含まれるエンティティ クラスの構成情報を指定します。
- DAO インスタンスの取得: Database オブジェクトのインスタンス メソッドを使用して、DAO インターフェイスのインスタンスを取得します。
- DAO メソッドの呼び出し: DAO インターフェイスのインスタンス メソッドを使用してデータベースにアクセスします。
別のことについて話しましょう、へへ
8. 取引
データベースに対して複数の操作を実行する場合、トランザクションを使用してデータの一貫性と整合性を確保できます。Room では、 @Transaction アノテーションを使用して、メソッドがトランザクションであることを指定できます。次に例を示します。
1 2 3 4 5 |
|
9. データベースの移行
当你需要修改数据库架构时,可以使用Room的数据库迁移功能来升级或降级数据库。在Room中,可以使用@Database注解中的version属性来指定数据库版本号,如果你需要进行迁移,你可以创建一个Migration对象,它包含了旧版本到新版本的变化信息,并将其添加到@Database注解中的migrations属性中,例如:
1 2 3 4 5 6 7 8 |
|
10、视图(View)
在一些情况下,你可能需要使用多个表中的数据来创建一个视图(数据库视图!不是android.view)。在Room中,你可以使用@DatabaseView注解来定义一个视图,并使用@Query注解来指定视图的查询语句,例如:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|
11、Flow!
实际上也支持RXJava,但是我不喜欢RX,可以结合Room、Flow和网络请求,做很酷的事情
1 2 3 4 5 6 7 8 |
|