1

私の仕事では、面倒でエラーが発生しやすい独自の DB アクセサー コードを作成する代わりに、ORMLite (見つけたばかり) を使用するように同僚を説得しようとしています。これを機能させるのに約2時間かかりますので、皆さんがここで私を助けてくれることを願っています!

だから私は今、ここで見つけたサンプルアプリを理解しようとしています. 私が理解している限り、すべてのモデル/テーブルに対してクラスを作成する必要があります。この例には、Person.java ファイルと App.java ファイルがあります。これらのファイルでは、すべてのフィールドのすべてのゲッターとセッターを手動で作成する必要があります。ここまでは順調ですね。

これらのファイルの隣に、次のファイルがあります。

  • DatabaseHelper.java
  • DemoRepository.java
  • PersonAdapter.java
  • DemoORMLiteACTivity.java

私の質問は次のとおりです。

  1. この意味でのリポジトリとは何ですか? なぜそれが必要なのですか?私はコードを調べていますが、本当に意味がわかりません。
  2. さらに、これらすべてのファイルも自分で作成する必要がありますか、それとも自動生成されるものがありますか?
  3. これらすべてのファイルを自分で作成する必要がある場合、SQL の数行を必要としないことを除いて、ORM を使用する利点は何ですか?
4

1 に答える 1

1

この意味でのリポジトリとは何ですか? なぜそれが必要なのですか?私はコードを調べていますが、本当に意味がわかりません。

ええと、あなたが提供するリンクはそれをかなりよく説明しています:

リポジトリ層は、すべてのデータベース操作に関連する例外とコードを隠して、すべての ORMLite 呼び出しをラップします。

したがって、「リポジトリ」は、データ アクセス オブジェクトまたは DAO メソッドを呼び出す特定のビジネス ロジック メソッドを提供するものです。これは、データベースへの呼び出しに使用するユーティリティ クラスです。彼らの例では、 aとそれに関連するエントリdeletePerson(...)を削除するために一連のデータベース操作を行うものがあります。PersonApp

DAO クラスは、エンティティに依存しないqueryById(...)タイプのメソッドをすべて提供します。リポジトリ クラスは、問題の特定のアプリケーションに非常に特殊な機能を追加するように見えます。

ORMLite HelloAndroid のサンプル コードを見ると、リポジトリ クラスがないため、必須ではないことがわかります。

さらに、これらすべてのファイルも自分で作成する必要がありますか、それとも自動生成されるものがありますか?

エンティティ ファイルとデータベース ヘルパーを自分で作成する必要があります。データベース ヘルパーは、おそらく既に持っているメソッドonCreate(...)とメソッドを処理するクラスです。onUpgrade(...)それを支援する基本クラスがありOrmLiteSqliteOpenHelperます。

これらすべてのファイルを自分で作成する必要がある場合、SQL の数行を必要としないことを除いて、ORM を使用する利点は何ですか?

ORM が優れたアイデアである理由はいくつかあります。私にとっては、拡張性についてです。確かに今は「数行の SQL」ですが、拡張の計画がない限り、数行はすぐに複雑になる可能性があります。ORM を使用すると、エンティティを管理でき、データベースについて心配する必要はありません。

さらに詳しい情報は次のとおりです。

于 2013-09-23T13:39:06.210 に答える