Hat jemand, der an Android ('gPhone') arbeitet, einen Ort, an dem ich ein gutes ORM-Tool dafür finden kann oder weiß? Der Code ist in Java geschrieben und die Datenbank ist SQLite. Was ich gerne finden würde, ist ein Tool, das angesichts der Objektdefinition die Tabellen und die CRUD-Funktionen automatisch generieren kann (das wäre fantastisch), oder, abgesehen davon, ein Tool, das die Tabellendefinition, die Objektdefinition, übernehmen kann. und generieren Sie die CRUD-Funktionalität automatisch. Das Problem ist, dass all dies innerhalb des Android-Frameworks geschehen muss, das seine eigenen Konventionen hinsichtlich der Funktionsweise des Datenbankzugriffs hat.
285
Antworten:
Ich dachte, ich würde hier nur meine $ 0,02 über mein ORMLite-Paket hinzufügen .
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 eine Android-Mailingliste für ORMLite-Fragen.
quelle
Diese Frage kann nicht altern, aber die vorgeschlagenen Rahmenbedingungen können. Hier ist zunächst eine Liste dessen, was ich in solchen Frameworks zum Vergleich für wichtig halte:
Und hier ist eine Liste von Frameworks mit Hinweisen zu den obigen Punkten. Ich habe mehr nach aBatis und Hadi gesucht, aber nur diejenigen hinzugefügt, die nach 2011 etwas Aktivität hatten.
Ich habe keines davon ausprobiert, aber vielleicht kann ich aktuellen Lesern etwas Zeit sparen, indem ich die heutzutage aktiven Projekte aufführe. 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): Die Liste wurde auf den aktuellen Status der Projekte aktualisiert. Einige von ihnen haben ihren Github-Repos Release-Tags sowie Maven / Gradle-Unterstützung hinzugefügt. Gute Arbeit!
EDIT (2015 Apr): Die Liste wurde aktualisiert, Sprinkles (gemäß Kommentar von @AndroidGecko) und Realm.io hinzugefügt.
quelle
Wenn Leistung und Codegröße eine Rolle spielen, lesen Sie greenDAO . Ich bin der Autor davon und meine Motivation, ein anderes 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. Kasse der Feature - Seite für Details.
quelle
Ich weiß nichts, wonach Sie genau fragen, aber es gibt eine Alternative zu SQLite, die Sie möglicherweise nützlich finden, wenn Ihre Architekturanforderungen flexibel sind. Es kann sich lohnen, db4o zu besuchen :
quelle
ActiveAndroid
(20 US-Dollar)scheint genau das zu sein, was Sie brauchen.quelle
Ich mochte ActiveAndroid. Es ist speziell für Android geschrieben, wie es scheint. Das fühlt sich für mich wie ein Plus an.
Ich habe einige Erfahrungen mit Ruby on Rails und wenn Sie die Rails-Methode von ActiveRecord mögen, können Sie mit dieser Bibliothek sehr schnell loslegen.
https://www.activeandroid.com/
quelle
https://github.com/ahmetalpbalkan/orman
Orman Framework könnte Ihnen helfen. Es ist speziell dafür konzipiert und sehr klein und nützlich.
quelle
Ich suche auch nach einem ORM für Android. Ich habe ActiveAndroid , NeoDatis und db4o getestet und denke, dass ich einen der beiden letzten verwenden werde.
NeoDatis und db4o sind sich sehr ähnlich, daher möchte ich einige Ratschläge zur Auswahl des besten. 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 ist ein Benchmark hier , die zu sagen scheint , dass NeoDatis ist schneller als db4o, aber ich weiß nicht , ob wir meiner Meinung nach auf diese stützen kann.
quelle
Ein weiterer Neuling: Android-Active-Record. Es ist ein sehr leichtes und benutzerfreundliches Persistenz-Framework für Android, das von SQLite unterstützt wird. Http://code.google.com/p/android-active-record/
quelle
ActiveRecordJS von Aptana ist ein Javascript ORM , die auf dem gPhone laufen soll. Es wurde für die Verwendung 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 es klargestellt habe, aber ActiveRecordJS ist ein ORM, das clientseitig ausgeführt wird, was für Sie auf dem gPhone von Vorteil sein könnte.
quelle
http://hadi.sourceforge.net
Dieses Tool ist sehr einfach und leicht zu bedienen.
quelle
Ich habe meine eigene Implementierung des JPA ORM für Android entwickelt. Die Funktion ist noch nicht vollständig abgeschlossen. Sie können die Klasse jedoch mit den Annotationen @Entity, @Id, @Column versehen und JPA-Entitäten erhalten, die gespeichert und aus der SQLite-Datenbank abgerufen werden können. Es braucht einige weitere Funktionen und Aufräumarbeiten, bevor ich es der Öffentlichkeit zur Verfügung stelle. Wenn jedoch genügend Interesse besteht, kann dies meine Bemühungen beschleunigen.
quelle
Obwohl dies ein alter Beitrag ist, ist das Thema immer noch relevant. Daher möchte ich einen interessanten Artikel und einen guten 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!
quelle
Meine eigenen DroidParts /http://droidparts.org/ haben gerade v0.5 erreicht. Es ist eine DI / ORM-Bibliothek & mehr.
Nicht viel Dokumentation, enthält aber eine Beispiel-App.
quelle
Hatte negative Erfahrungen mit db4o (v. 8): Die Indizierung funktionierte nicht richtig (Ausnahme usw.). Ich habe es also nicht geschafft, das Erstellen von Duplikaten in fremden Tabellen zu vermeiden, wenn sich ein Objekt in einer Objektstruktur befindet. Detailliertere Erklärung in meiner Frage . Hoffe eines Tages wäre es besser.
quelle