Toute personne travaillant sur Android ('gPhone') a ou connaît un endroit où je peux trouver un bon outil ORM pour cela? Le code est écrit en Java et la base de données est SQLite. Ce que je voudrais trouver, c'est un outil qui, compte tenu de la définition de l'objet, peut générer automatiquement les tables et les fonctions CRUD (ce serait génial), ou, sauf cela, un outil qui peut prendre la définition de la table, la définition de l'objet, et générer automatiquement la fonctionnalité CRUD. Le hic, c'est que tout cela doit se produire dans le cadre Android, qui a ses propres conventions sur le fonctionnement de l'accès à la base de données.
285
Réponses:
Je pensais simplement ajouter mes 0,02 $ ici à propos de mon package ORMLite .
Il s'agit d'un remplacement léger d'Hibernate et utilise des appels de base de données Android OS natifs 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 une liste de diffusion Android pour les questions ORMLite.
la source
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. J'ai cherché un peu plus comme aBatis et Hadi mais j'ai ajouté seulement ceux qui avaient une activité après 2011.
Je n'ai essayé aucun de ceux-ci mais peut-être pourrais-je épargner un peu de temps aux lecteurs actuels en énumérant les projets actifs de nos jours. Veuillez ajouter un commentaire si vous connaissez d'autres projets qui satisfont certains des points ci-dessus et ont un développement sérieux (sur une certaine période) en cours.
EDIT (2013 Nov): mise à jour de la liste à l'état actuel des projets. Certains d'entre eux ont ajouté des balises de version à leurs dépôts github ainsi que le support Maven / Gradle. Bon travail!
EDIT (2015 Apr): mise à jour de la liste, ajout de Sprinkles (selon le commentaire de @AndroidGecko) et Realm.io.
la source
Si les performances et la taille du code sont importantes, consultez greenDAO . J'en suis l'auteur, et ma motivation pour créer un autre ORM était d'éviter la réflexion dans les hotspots. Il s'est avéré que greenDAO peut être jusqu'à 4 fois plus rapide que ORMLite. Consultez la page des fonctionnalités pour plus de détails.
la source
Je ne sais pas quoi que ce soit exactement ce que vous demandez, mais il existe une alternative à SQLite que vous pouvez trouver utile si vos exigences d'architecture sont flexibles. Il peut être utile de consulter db4o :
la source
ActiveAndroid
(20 $)semble être exactement ce dont vous avez besoin.la source
J'ai aimé ActiveAndroid. Il est écrit spécifiquement pour Android, semble-t-il. C'est comme un plus pour moi.
J'ai une certaine expérience Ruby on Rails et si vous aimez la méthode Rails d'ActiveRecord, vous pouvez très rapidement vous déplacer avec cette bibliothèque.
https://www.activeandroid.com/
la source
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.
la source
Je recherche également un ORM sur Android. J'ai testé ActiveAndroid , NeoDatis et db4o , et je pense que j'utiliserai l'un des deux derniers.
NeoDatis et db4o sont vraiment similaires, je voudrais donc quelques conseils pour choisir le meilleur. Est-ce que quelqu'un utilise l'un d'eux sur son projet? Je vais l'utiliser pour une application gratuite et payante, mais il semble que les deux n'ont aucune limitation de licence pour Android.
Il y a ici une référence qui semble dire que NeoDatis est plus rapide que db4o, mais je ne sais pas si nous pouvons baser mon opinion sur cela.
la source
Un nouveau venu: android-active-record. C'est un framework de persistance très léger et facile à utiliser pour Android soutenu par SQLite http://code.google.com/p/android-active-record/
la source
ActiveRecordJS d'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.
MISE À JOUR: 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.
la source
http://hadi.sourceforge.net
Cet outil est très simple et facile à utiliser.
la source
J'ai développé ma propre implémentation de JPA ORM pour Android. Il n'est pas encore complet, mais vous pouvez annoter la classe avec les annotations @Entity, @Id, @Column et vous obtenez des entités JPA qui peuvent être stockées et récupérées à partir de la base de données SQLite. Il a besoin de plus de fonctionnalités et de nettoyage avant de le publier, mais s'il y a suffisamment d'intérêt, cela pourrait accélérer mes efforts.
la source
Même s'il s'agit d'un ancien article, le sujet est toujours d'actualité. Par conséquent, je veux partager un article intéressant et une belle approche pour résoudre la plupart des problèmes mentionnés dans la question:
http://blog.codecentric.de/en/2011/04/android-persistence-accelerated-small-inhouse-orm/
J'espère que quelqu'un trouvera cela aussi utile que moi!
la source
Mes propres DroidParts /http://droidparts.org/ viennent d'atteindre la v0.5. C'est une bibliothèque DI / ORM et plus.
Pas beaucoup de documentation, mais comprend un exemple d'application.
la source
A eu une expérience négative avec db4o (v. 8): l'indexation n'a pas fonctionné correctement (exception, etc.). Donc, je n'ai pas réussi à éviter de créer des doublons dans des tables étrangères lorsque j'ai un objet dans la structure de l'objet. Explication plus détaillée dans ma question . J'espère qu'un jour ce serait mieux.
la source