it-swarm.com.de

Irgendwelche guten ORM-Tools für die Android Entwicklung?

Wer am Android ('gPhone') arbeitet, hat oder kennt einen Ort, an dem ich ein gutes ORM-Tool dafür finden kann? Der Code ist in Java geschrieben und die Datenbank ist SQLite. Was Ich würde gerne ein Tool finden, das die Objektdefinition angibt, die Tabellen und die CRUD-Funktionen automatisch generiert (das wäre großartig), oder, abgesehen davon, ein Tool, das die Tabellendefinition, die Objektdefinition und ... übernehmen kann Die CRUD-Funktionalität wird automatisch generiert. All dies muss im Rahmen von Android) geschehen, der seine eigenen Konventionen hinsichtlich der Funktionsweise des Datenbankzugriffs hat.

282
GWLlosa

Ich dachte, ich füge hier nur meine $ 0.02 zu meinem ORMLite-Paket hinzu.

Es ist ein leichter Ersatz für Hibernate und verwendet native Android OS-Datenbankaufrufe, um SQLite unter Android zu unterstützen. Es unterstützt auch viele andere Datenbanktypen, die JDBC auf anderen Architekturen verwenden. Wir haben ein Android Mailingliste für ORMLite-Fragen.

111
Gray

Diese Frage kann nicht altern, aber die vorgeschlagenen Rahmenbedingungen können. Hier ist zunächst eine Liste dessen, was mir in solchen Frameworks zum Vergleich wichtig ist:

  • Gibt es ein Maven- oder Gradle-Artefakt? (Das ist natürlich ein großes Plus, je nachdem, ob Sie Maven oder Gradle verwenden.)
  • Ist der Code auf einfache Weise zugänglich, einschließlich einer schnellen Übersicht über die Festlegungen zur Beurteilung der Aktivität? (Code, der auf Github gehostet wird, ist in dieser Hinsicht ein klares Plus für mich.)
  • Release-Management: Gibt es Releases/Release-Tags und Artefakte dafür? (Es gibt einige, die auf Github gehostet werden und entweder einen Git-Klon benötigen oder den Master-Tarball zum Download anbieten - für mich ein großes Minus, wenn nicht sogar Release-Tags in der README gesetzt und adressiert sind.)
  • aus größengründen habe ich einige hinweise gemacht, wo es leicht zu bekommen ist (ich habe nichts heruntergeladen, daher gibt es bei jenen projekten, die keine release-artefakte anbieten, keine größen)

Und hier ist eine Liste von Frameworks mit Hinweisen zu den obigen Punkten. Ich habe etwas mehr nach aBatis und Hadi gesucht, aber ich habe nur diejenigen hinzugefügt, die nach 2011 etwas Aktivität hatten.

Ich habe keine davon ausprobiert, aber vielleicht kann ich aktuellen Lesern etwas Zeit sparen, indem ich die derzeit aktiven Projekte aufliste. Bitte fügen Sie einen Kommentar hinzu, wenn Sie andere Projekte kennen, die einige der oben genannten Punkte erfüllen und sich (im Laufe der Zeit) ernsthaft weiterentwickeln.

EDIT (2013 Nov): Aktualisiert die Liste auf den aktuellen Status der Projekte. Einige von diesen haben Release-Tags zu ihren Github-Repos hinzugefügt sowie Maven/Gradle-Unterstützung. Gute Arbeit!

BEARBEITEN (2015 Apr): Liste aktualisiert, Sprinkles (gemäß Kommentar von @AndroidGecko) und Realm.io hinzugefügt.

66
Risadinha

Wenn Leistung und Codegröße von Bedeutung sind, lesen Sie greenDAO . Ich bin der Autor davon, und meine Motivation, ein weiteres ORM zu erstellen, bestand darin, Reflexionen in den Hotspots zu vermeiden. Es stellte sich heraus, dass greenDAO bis zu viermal schneller sein kann als ORMLite. Überprüfen Sie die Feature-Seite für Details.

39

Ich kenne nichts, was genau das ist, wonach Sie fragen, aber es gibt eine Alternative zu SQLite, die Sie möglicherweise nützlich finden, wenn Ihre Architekturanforderungen flexibel sind. Es kann sich lohnen, sich db4o anzusehen:

10
slf

ActiveAndroid (20 US-Dollar) sieht so aus, als ob es genau das ist, was Sie brauchen.

9
Michael Pardo

Ich mochte ActiveAndroid. Es ist speziell für Android) geschrieben. Das fühlt sich für mich wie ein Plus an.

Ich habe einige Erfahrungen mit Ruby on Rails und wenn Ihnen die Rails) - Art von ActiveRecord gefällt, können Sie sich sehr schnell in Bewegung setzen diese Bibliothek.

https://www.activeandroid.com/

7
Tony Topper

https://github.com/ahmetalpbalkan/orman

Orman Framework könnte Ihnen helfen. Es ist speziell dafür konzipiert und sehr klein und nützlich.

6
AhmetB - Google

Ich suche auch nach einem ORM für Android. Ich habe ActiveAndroid , NeoDatis und db4o getestet und denke, dass ich eines der beiden letzten verwenden werde.

NeoDatis und db4o sind sich sehr ähnlich, daher möchte ich einige Ratschläge, um die beste zu wählen. Verwendet jemand einen von ihnen für sein Projekt? Ich werde es für eine kostenlose und kostenpflichtige App verwenden, aber es scheint, dass die beiden keine Lizenzbeschränkung für Android haben.

Es gibt einen Maßstab hier , der zu sagen scheint, dass NeoDatis schneller als db4o ist, aber ich weiß nicht, ob wir meine Meinung darauf stützen können.

6
Chayy

Noch ein Neuling: Android-active-record. Das Persistenz-Framework für Android mit Unterstützung von SQLite http://code.google.com/p/Android-active-record/ ist sehr leicht und einfach zu verwenden

3
Vladimir Kroz

http://hadi.sourceforge.net

Dieses Tool ist sehr einfach und leicht zu bedienen.

2
9tcat

ActiveRecordJS von Aptana ist ein Javascript ORM, das auf dem gPhone laufen soll. Es wurde für die Zusammenarbeit mit Jaxer und Gears entwickelt. Wenn Sie die Jaxer-Adapter verwenden, können Sie eine Verbindung zu SQLLite herstellen.

UPDATE: Ich glaube nicht, dass ich das klargestellt habe, aber ActiveRecordJS ist ein ORM, das clientseitig ausgeführt wird, was für Sie auf dem gPhone von Vorteil sein könnte.

2
David Robbins

Auch wenn dies ein alter Beitrag ist, ist das Thema immer noch relevant. Daher möchte ich einen interessanten Artikel und einen Nizza-Ansatz zur Lösung der meisten der in der Frage genannten Probleme vorstellen:

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

Hoffe, jemand findet das so nützlich wie ich!

1
Sgali

Meine eigene DroidParts /http://droidparts.org/ erreichte gerade v0.5. Es ist eine DI/ORM-Bibliothek und mehr.
Nicht viel Dokumentation, enthält aber eine Beispiel-App.

1
yanchenko

Ich habe meine eigene Implementierung des JPA ORM für Android entwickelt. Es ist noch nicht vollständig funktionsfähig, aber Sie können Klassen mit den Annotationen @Entity, @Id, @Column versehen und JPA-Entitäten abrufen, die in der SQLite-Datenbank gespeichert und abgerufen werden können. Es braucht einige weitere Funktionen und Aufräumarbeiten, bevor ich es der Öffentlichkeit zur Verfügung stelle, aber wenn es genügend Interesse gibt, kann es meine Bemühungen beschleunigen.

1
Pavel Lahoda

Hatte negative Erfahrungen mit db4o (v. 8): Die Indizierung funktionierte nicht richtig (Ausnahme usw.). Ich habe es also nicht geschafft, Duplikate in Fremdtabellen zu vermeiden, wenn sich ein Objekt in der Objektstruktur befindet. Detailliertere Erklärung in meinem Frage . Hoffe eines Tages wäre es besser.

0