Android開発に適したORMツールはありますか?[閉まっている]


285

Android(「gPhone」)を使用している人は誰でも、それに適したORMツールを見つけることができる場所を知っていますか?コードはJavaで書かれており、データベースはSQLiteです。私が見つけたいのは、オブジェクト定義を指定して、テーブルとCRUD関数を生成できるツールです(これは素晴らしいでしょう)。それがなければ、テーブル定義、オブジェクト定義を取得できるツールです。 CRUD機能を自動生成します。問題は、これらすべてがAndroidフレームワーク内で発生する必要があるということです。Androidフレームワークには、データベースアクセスの動作に関する独自の規則があります。


現在利用できるものはないと思います。
mparaz 2009

2
その2014年私はスプリンクル(言及うと思っgithub.com/emilsjolander/sprinklesを誰がmeaven中央、コンテンツオブザーバー、価値確認の上、githubの上.. 500件、それを言及していないので)
AndroidGecko

それは2015年です。SoftwareTreeは、Android向けのシンプルでありながら強力で柔軟なORMであるJDXAを最近リリースしました。1対1、1対多、多対1、および多対多の関係の継承をサポートします。JDXAのPOJO(Plain Old Java Objects)対応の非侵入型プログラミングモデルでは、Javaクラスを変更する必要はありません。-ベースクラスからドメインクラスをサブクラス化する必要はありません。 DAOクラスを使用する必要はありません-いいえ、ソースコードの生成
ダモダル川Periwal

JDXA ORMに関するこの素晴らしいチュートリアルをチェックしてください。
Damodar Periwal、2015年

追加のライブラリ依存関係のないプレーンで自然なAndroidコードを好む場合は、SQLiteピアクラスコードジェネレーターの例をご覧ください。これは注釈ベースであり、主キーの組み合わせ、一意の制約とインデックスの組み合わせをサポートしています。
RookieGuy 2017

回答:


111

私のORMLiteパッケージについてここに$ 0.02を追加するだけだと思いました。

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


1
ORMLiteには、(1 |多)対(多|一)関係のサポートが組み込まれていますか?私はそれについて多くの情報を見つけることができません...そうでなければ、これの計画はありますか?
ferdystschenko、2011

1
「サポート」の意味によって異なります。1 対多の方法である「外部オブジェクト」の使用方法に関するいくつかのサンプルコードがあり、結合テーブルを使用して多対多を実行する方法の例があります(ormlite.com/docs/examples)。ユーザーリストに質問を投稿します(groups.google.com/group/ormlite-user)。
グレイ

7
ええ、それは確かにActiveAndroidよりも大きいです。もちろん、さらに多くの機能があります。また、AAのライセンスではなくフリーウェア。しかし、サイズが目標である場合、ORMLiteはあなたのためではありません。
グレー

4
@Gray Ironicは "Lite"であることになっているため、次のとおりです。P–
Salman von Abbas

5
確かに@SalmanPK。ライトの程度はさまざまですが。:-)
グレイ

66

この質問は年をとることができませんが、提案されたフレームワークは年をとることができます。だから、ここに私が最初に比較のためにそのようなフレームワークで重要だと思うもののリストがあります:

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

そして、ここに上記の点についてのメモを持つフレームワークのリストがあります。さらにaBatisやHadiのように調べましたが、2011年以降に何らかの活動があったものだけを追加しました。

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

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

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


Realmを使用することを強くお勧めします。これは、動作が非常に高速でスムーズです。
クロノ2018

39

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


5
見栄えはいいですが、Daoを生成しなければならないのは、私にとってターンオフです:(
Chris.Jenkins

4
はい、コードの生成は開発者にとって追加の手順ですが、アプリのパフォーマンスを大幅に節約できます。ブートストラップとデータベース結果の解析はどちらも大幅に高速です。他のツールはリフレクションに依存しており、Androidでは非常に遅いです。
Markus Junginger、2011

1
私は自分のプロジェクトでgreenDaoを使用していますが、とても満足しています。
mabac

3
@greenrobot libを使用した「大きなアプリ」のショーケースはありますか?
StErMi

1
@StErMiパスはgreenDAOを使用しています。インストール数は100万回を超えます。参照github.com/greenrobot/greenDAO/issues/20#issuecomment-13278922
マルクスJunginger

10

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


DB40で良い結果が出ました... Active Androidをチェックアウトしたいのですが...
Ben

1
activeandroid.comはかっこいいです。試してみることを楽しみにしています
slf

9

ActiveAndroid ($ 20)は、まさにあなたが必要としているもののようです。


14
私はあなたがここで何か変なことをしようとしているのではないことを知っていますが、SOで独自の製品の1つに言及するとき、あなたの投稿であなたの所属を開示していただけませんか?リンク先のページのフッターにあなたの名前が含まれていることは承知しておりますが、私たちは(これはそうではありません)天災を取り締まるつもりです。ありがとう。
、トカゲ

4
正解ですが、ActiveAndroidは無料ではありません。
GAK

7
ActiveAndroidが無料でオープンソースになりました -pardom.github.com/ActiveAndroid
Michael Pardo

7

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

私はRuby on Railsの経験をいくつか持っています。ActiveRecordのRailsの方法が好きなら、このライブラリをすぐに使い始めることができます。

https://www.activeandroid.com/


素晴らしいフレームワークですが、org.codehous.jacksonライブラリと競合するため、プロジェクトで使用すると、ActveAndroidを使用できなくなります
endryha

1
どのように競合しますか?tracker.activeandroid.comのバグとして報告しましたか?
Michael Pardo

たぶんandrorm.the-pixelpla.netを見てください。これはほとんどの機能を備えているので、もう少し説明します。さらに、無料でオープンソースです。
philgiese '25


6

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

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

そこベンチマークである、ここで NeoDatisが速いのdb4oよりであることを言っているようだが、私たちは、この上で私の意見をベースにできるかどうかはわかりません。


Db40とNeoDatisはオブジェクトデータベースです。これらのサイズだけでは、Androidで使用することは完全に禁止されています。
Bostone

@ DroidIn.netは、コメントを維持するリンクを提供できますか?
Sergio

3

さらにもう1つ、android-active-recordがあります。SQLite http://code.google.com/p/android-active-record/に支えられた、Android向けの非常に軽量で使いやすい永続化フレームワークです。


まだ開発の初期段階のようですが、注目する価値があります。
GWLlosa 2010年

試してみた-それは良い始まりですが、プライムタイムに備えるには多くの作業が必要です
Bostone

2

ActiveRecordJSAptanaのは、gPhoneで実行するJavascript ORMです。JaxerとGearsで動作するように設計されています。Jaxerアダプターを使用すると、SQLLiteに接続できます。

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


Javaコードで?またはJavaScriptコードで?
GWLlosa 2009

あなたが話しているのは、純粋にブラウザベース(Web)アプリケーションを対象としたJavascriptソリューションだと私は確信しています。Android向けのネイティブアプリ開発との関係がわかりません。
ブライアンレイシー、


1

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


面白そうですね。見て/試してみる?乾杯、マーティン
MartinGrotzke

1年以上後、これの進捗状況はどうですか?Android上のJPA +アノテーションは素晴らしい音です!
Spidey



0

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.