Toute personne travaillant sur le Android ("gPhone") a ou connaît un endroit où je peux trouver un bon outil ORM? Le code est écrit en Java et la base de données est SQLite. J'aimerais trouver un outil qui, compte tenu de la définition de l'objet, peut générer automatiquement les tables et les fonctions CRUD (ce qui serait génial), ou, à défaut, un outil pouvant prendre la définition de la table, la définition de l'objet, et générer automatiquement la fonctionnalité CRUD, mais tout cela doit se faire dans le cadre Android), qui a ses propres conventions quant au fonctionnement de l’accès à la base de données.
Je pensais que je viens d'ajouter mon 0,02 $ ici sur mon paquet ORMLite .
C'est un substitut léger à Hibernate et utilise des appels natifs Android base de données OS pour prendre en charge SQLite sur Android. Il prend également en charge de nombreux autres types de bases de données utilisant JDBC sur d'autres architectures. Nous avons un Android liste de diffusion pour les questions ORMLite.
Cette question ne peut pas vieillir mais les cadres suggérés le peuvent. Donc, voici d'abord une liste de ce que je trouve important dans de tels cadres de comparaison:
Et voici une liste de cadres avec des notes sur les points ci-dessus. Je levai les yeux un peu plus comme aBatis et Hadi mais j’ajoutai seulement ceux qui avaient un peu d’activité après 2011.
Je n’ai essayé aucune de ces solutions, mais je pourrais peut-être épargner un peu de temps aux lecteurs actuels en énumérant les projets actuellement actifs. Veuillez ajouter un commentaire si vous connaissez d’autres projets qui répondent à certains des points ci-dessus et qui connaissent un développement sérieux (au fil du temps).
EDIT (novembre 2013): mise à jour de la liste avec l'état actuel des projets. Certains d'entre eux ont ajouté des étiquettes de version à leurs dépôts github ainsi que le support Maven/Gradle. Bon travail!
EDIT (avril 2015): mise à jour de la liste, ajout de Sprinkles (selon le commentaire de @AndroidGecko) et de Realm.io.
Si les performances et la taille du code sont importantes, vérifiez greenDAO . J'en suis l'auteur et ma motivation pour créer un autre ORM était d'éviter toute réflexion dans les points chauds. Il s'est avéré que greenDAO peut être jusqu'à 4 fois plus rapide que ORMLite. Commander le page de fonctionnalité pour plus de détails.
Je ne sais rien de ce qui est exactement ce que vous demandez, mais il existe une alternative à SQLite qui pourrait vous être utile si les exigences de votre architecture sont flexibles. Il peut être intéressant de consulter db4o :
ActiveAndroid (20 $) on dirait que c'est peut-être exactement ce dont vous avez besoin.
J'ai aimé ActiveAndroid. Il est écrit spécialement pour Android semble-t-il. Cela me semble être un plus.
J'ai un peu d'expérience Ruby sur Rails et si vous aimez le moyen Rails d'ActiveRecord, vous pouvez vous déplacer rapidement cette bibliothèque.
https://github.com/ahmetalpbalkan/orman
Le framework Orman pourrait vous aider. Il est spécialement conçu pour cela et très petit et utile.
Je cherche aussi un ORM sur Android. J'ai testé ActiveAndroid , NeoDatis et db4o , et je pense que je vais utiliser l'un des deux derniers.
NeoDatis et db4o sont vraiment similaires, donc j'aimerais quelques conseils pour choisir le meilleur. Est-ce que quelqu'un en utilise un sur son projet? Je vais l'utiliser gratuitement et avec une application payante, mais il semble que les deux n'ont aucune limite de licence pour Android.
Il y a un repère ici qui semble dire que NeoDatis est plus rapide que db4o, mais je ne sais pas si nous pouvons baser mon opinion sur cela.
Encore un nouveau venu: Android-active-record. Cadre de persistance très léger et facile à utiliser pour Android soutenu par SQLite http://code.google.com/p/Android-active-record/
Cet outil est très simple et facile à utiliser.
ActiveRecordJS de Aptana est un ORM Javascript qui devrait fonctionner sur le gPhone. Il est conçu pour fonctionner avec Jaxer et Gears. Lorsque vous utilisez les adaptateurs Jaxer, vous pouvez vous connecter à SQLLite.
UPDATE: Je ne pense pas avoir été clair, mais ActiveRecordJS est un ORM qui fonctionne côté client, ce qui pourrait être un avantage pour vous sur le gPhone.
Même s'il s'agit d'un ancien message, le sujet est toujours d'actualité. Par conséquent, je souhaite partager un article intéressant et une approche de Nice pour résoudre la plupart des problèmes mentionnés dans la question:
http://blog.codecentric.de/fr/2011/04/Android-persistence-accelerated-small-inhouse-orm/
J'espère que quelqu'un trouvera cela aussi utile que moi!
Mon propre DroidParts /http://droidparts.org/ vient d'atteindre la v0.5. C'est une bibliothèque DI/ORM et plus.
Pas beaucoup de documentation, mais comprend un exemple d'application.
J'ai développé ma propre implémentation de JPA ORM pour Android. Les fonctionnalités ne sont pas encore complètes, mais vous pouvez annoter une classe avec les annotations @Entity, @Id, @Column et obtenir des entités JPA pouvant être stockées et extraites de la base de données SQLite. Il a besoin de plus de fonctionnalités et de nettoyage avant que je puisse le publier au public, mais si l'intérêt est suffisant, cela pourrait accélérer mes efforts.
Expérience négative avec db4o (v. 8): l'indexation ne fonctionnait pas correctement (exception, etc.). Je n'ai donc pas réussi à éviter de créer des doublons dans des tables étrangères lorsque l'objet est dans la structure d'objet. Explication plus détaillée dans mon question . J'espère qu'un jour ça ira mieux.