web-dev-qa-db-ja.com

Android開発に適したORMツールはありますか?

Android( 'gPhone')で作業している人は、適切なORMツールを見つけることができる場所を知っていますか?コードはJavaで記述され、データベースはSQLiteです。私が見つけたいのは、オブジェクト定義を与えられ、テーブルとCRUD関数を自動生成できるツールです(それは素晴らしいでしょう)、またはそれを除いて、テーブル定義、オブジェクト定義、 CRUD機能を自動生成します。問題は、これらすべてがAndroidフレームワーク内で発生する必要があるということです。このフレームワークには、データベースアクセスの動作方法に関する独自の規則があります。

282
GWLlosa

ORMLiteパッケージ について$ 0.02を追加するだけだと思った。

Hibernateの軽量な代替品であり、ネイティブAndroid OSデータベース呼び出しを使用してAndroidでSQLiteをサポートします。また、他のアーキテクチャでJDBCを使用する他の多くのデータベースタイプもサポートしています。 ORMLiteの質問には Androidメーリングリスト があります。

111
Gray

この質問は老化することはできませんが、提案されたフレームワークは老化することができます。そこで、まず、比較のためにこのようなフレームワークで重要だと思うもののリストを示します。

  • MavenまたはGradleアーティファクトはありますか? (明らかに、Mavenを使用するかgradleを使用するかに応じて大きなプラスになります)
  • アクティビティを判断するためのコミットの概要を含む簡単な方法でコードにアクセスできますか? (githubでホストされているコードは、私にとっては間違いなくプラスです)
  • リリース管理:リリース/リリースタグおよびアーティファクトはありますか? (githubでホストされ、git cloneを必要とするもの、またはダウンロード用のマスターtarballを提供するものがあります-リリースタグさえ設定されていなくても、READMEで大きなマイナスが設定されています)
  • サイズが重要であるため、簡単に手が届く場所にいくつかのヒントを掲載しました(何もダウンロードしなかったため、リリースアーティファクトを提供しないプロジェクトからはサイズがありません)

また、上記のポイントに関する注意事項を含むフレームワークのリストを次に示します。 aBatis とHadiのように調べましたが、2011年以降に何らかのアクティビティがあったものだけを追加しました。

私はこれらのいずれも試したことはありませんが、現在のアクティブなプロジェクトをリストすることで、現在の読者に少し時間を割くことができます。上記のポイントのいくつかを満たす他のプロジェクトを知っていて、(ある程度)深刻な開発が進行している場合は、コメントを追加してください。

編集(2013年11月):リストをプロジェクトの現在のステータスに更新しました。これらのいくつかは、githubリポジトリにリリースタグとMaven/Gradleサポートを追加しました。よくできました!

編集(2015年4月):リストを更新し、Sprinkles(@AndroidGeckoのコメントによる)およびRealm.ioを追加しました。

66
Risadinha

パフォーマンスとコードサイズが重要な場合は、 greenDAO を確認してください。私はその著者であり、別のORMを作成する動機は、ホットスポットへの反映を避けることでした。 greenDAOはORMLiteよりも最大4倍高速であることが判明しました。詳細については、 機能ページ をご覧ください。

39

私があなたがまさに求めているものは知りませんが、アーキテクチャ要件が柔軟な場合に役立つSQLiteの代替があります。チェックアウトする価値があるかもしれませんdb4o

10
slf

ActiveAndroid (20ドル) まさにあなたが必要としているもののように見えます。

9
Michael Pardo

ActiveAndroidが気に入りました。 Android専用に書かれているようです。それは私にとってプラスのような気がします。

RubyでいくつかのRailsの経験があります。ActiveRecordのRailsの方法が気に入ったら、このライブラリをすぐに使用できます。

https://www.activeandroid.com/

7
Tony Topper

https://github.com/ahmetalpbalkan/orman

Ormanフレームワークが役に立つかもしれません。それは特にそのために設計されており、非常に小さくて便利です。

6
AhmetB - Google

AndroidのORMも探しています。 ActiveAndroidNeoDatis 、および db4o をテストしましたが、最後の2つのうちの1つを使用すると思います。

NeoDatisとdb4oは本当に似ているので、最適なものを選択するためのアドバイスをお願いします。誰かが彼のプロジェクトでそれらの1つを使用していますか?無料アプリと有料アプリに使用しますが、Androidのライセンス制限はないようです。

ベンチマークがあります こちら NeoDatisはdb4oよりも高速であると思われますが、これに基づいて意見を述べることができるかどうかはわかりません。

6
Chayy

もう1人の新人:Android-active-record。 SQLiteがサポートするAndroidの永続フレームワークは非常に軽量で使いやすい http://code.google.com/p/Android-active-record/

3
Vladimir Kroz

http://hadi.sourceforge.net

このツールは非常にシンプルで使いやすいです。

2
9tcat

ActiveRecordJS Aptanaからは、gPhoneで実行する必要があるJavascript ORMです。 JaxerおよびGearsと連携するように設計されています。 Jaxer Adaptersを使用すると、SQLLiteに接続できます。

更新:私はそれを明確にしたとは思わないが、ActiveRecordJSはクライアント側を実行するORMであり、これはgPhoneであなたに有利かもしれない。

2
David Robbins

これは古い投稿ですが、トピックは依然として関連しています。したがって、質問で言及されているほとんどの問題を解決するための興味深い記事とニースのアプローチを共有したいと思います。

http://blog.codecentric.de/en/2011/04/Android-persistence-accelerated-small-inhouse-orm/

誰もがこれが私と同じくらい便利だと思うことを願っています!

1
Sgali

私自身 DroidParts /http://droidparts.org/ はちょうどv0.5に達しました。 DI/ORMライブラリなどです。
あまりドキュメントはありませんが、サンプルアプリが含まれています。

1
yanchenko

Android用のJPA ORMの独自の実装を開発しました。まだ完全に機能が完全ではありませんが、@ Entity、@ Id、@ Columnアノテーションを使用してクラスに注釈を付けることができ、SQLiteデータベースに格納および取得できるJPAエンティティを取得できます。一般公開する前に、さらにいくつかの機能とクリーンアップが必要ですが、十分な関心がある場合は、努力が加速する可能性があります。

1
Pavel Lahoda

Db4oのネガティブな経験がありました(v。8):インデックス作成が正しく機能しませんでした(例外など)。そのため、オブジェクト構造にオブジェクトがあるときに、外部テーブルで重複を作成することを避ける方法を管理しませんでした。私の question のより詳細な説明。いつかそれが良くなることを願っています。

0