¿Alguien que trabaja en Android ('gPhone') tiene o conoce un lugar donde puedo encontrar una buena herramienta ORM para él? El código está escrito en Java y la base de datos es SQLite. Lo que me gustaría encontrar es una herramienta que, dada la definición del objeto, pueda generar automáticamente las tablas y las funciones CRUD (eso sería genial), o, salvo eso, una herramienta que pueda tomar la definición de la tabla, la definición del objeto, y autogenerar la funcionalidad CRUD. El problema es que todo esto debe suceder dentro del marco de Android, que tiene sus propias convenciones sobre cómo funciona el acceso a la base de datos.
285
Respuestas:
Pensé que solo agregaría mis $ 0.02 aquí sobre mi paquete ORMLite .
Es un reemplazo liviano de Hibernate y utiliza llamadas nativas de la base de datos del sistema operativo Android para admitir SQLite en Android. También es compatible con muchos otros tipos de bases de datos que utilizan JDBC en otras arquitecturas. Tenemos una lista de correo de Android para preguntas ORMLite.
fuente
Esta pregunta no puede envejecer, pero los marcos sugeridos sí. Entonces, aquí hay una lista de lo que considero importante en dichos marcos para la comparación:
Y aquí hay una lista de marcos con notas sobre los puntos anteriores. Busqué un poco más como aBatis y Hadi, pero agregué solo aquellos que tuvieron alguna actividad después de 2011.
No he probado ninguno de esos, pero tal vez pueda ahorrarle un poco de tiempo a los lectores actuales al enumerar los proyectos activos actuales. Agregue un comentario si conoce otros proyectos que satisfacen algunos de los puntos anteriores y tienen un desarrollo serio (con el tiempo).
EDITAR (noviembre de 2013): actualizó la lista al estado actual de los proyectos. Algunos de estos han agregado etiquetas de lanzamiento a sus repositorios de github, así como el soporte de Maven / Gradle. ¡Buen trabajo!
EDITAR (2015 Abr): actualizó la lista, agregó Sprinkles (según el comentario de @AndroidGecko) y Realm.io.
fuente
Si el rendimiento y el tamaño del código son importantes, consulte greenDAO . Soy el autor, y mi motivación para crear otro ORM fue evitar la reflexión en los puntos críticos. Resultó que greenDAO puede ser hasta 4 veces más rápido que ORMLite. Consulte la página de características para obtener más detalles.
fuente
No sé de nada que sea exactamente lo que está pidiendo, pero hay una alternativa a SQLite que puede encontrar útil si sus requisitos de arquitectura son flexibles. Puede valer la pena echar un vistazo a db4o :
fuente
Parece que ActiveAndroid
($ 20)puede ser exactamente lo que necesita.fuente
Me gustó ActiveAndroid. Parece que está escrito específicamente para Android. Eso se siente como una ventaja para mí.
Tengo algo de experiencia en Ruby on Rails y si te gusta la forma Rails de ActiveRecord puedes moverte rápidamente con esta biblioteca.
https://www.activeandroid.com/
fuente
https://github.com/ahmetalpbalkan/orman
El marco de Orman podría ayudarte. Está especialmente diseñado para eso y es muy pequeño y útil.
fuente
También estoy buscando un ORM en Android. Probé ActiveAndroid , NeoDatis y DB4O , y creo que voy a utilizar uno de los dos últimos.
NeoDatis y db4o son realmente similares, por lo que me gustaría un consejo para elegir el mejor. ¿Alguien está usando uno de ellos en su proyecto? Lo usaré para la aplicación gratuita y de pago, pero parece que los dos no tienen ninguna limitación de licencia para Android.
Hay un punto de referencia aquí que parece decir que es más rápido que NeoDatis db4o, pero no sé si podemos basar mi opinión sobre esto.
fuente
Un recién llegado más: android-active-record. Es un marco de persistencia muy ligero y fácil de usar para Android respaldado por SQLite http://code.google.com/p/android-active-record/
fuente
ActiveRecordJS de Aptana es un ORM de Javascript que debería ejecutarse en el gPhone. Está diseñado para trabajar con Jaxer y Gears. Cuando utiliza los adaptadores Jaxer, puede conectarse a SQLLite.
ACTUALIZACIÓN: No creo que lo haya dejado claro, pero ActiveRecordJS es un ORM que ejecuta el lado del cliente, lo que podría ser una ventaja para usted en el gPhone.
fuente
http://hadi.sourceforge.net
Esta herramienta es muy simple y fácil de usar.
fuente
He desarrollado mi propia implementación de JPA ORM para Android. Todavía no está completamente completa, pero puedes anotar la clase con las anotaciones @Entity, @Id, @Column y obtienes entidades JPA que se pueden almacenar y recuperar de la base de datos SQLite. Necesita algunas funciones y limpieza más antes de publicarlo en el público, pero si hay suficiente interés, podría acelerar mi esfuerzo.
fuente
Aunque esta es una publicación antigua, el tema sigue siendo relevante. Por lo tanto, quiero compartir un artículo interesante y un buen enfoque para resolver la mayoría de los problemas mencionados en la pregunta:
http://blog.codecentric.de/en/2011/04/android-persistence-accelerated-small-inhouse-orm/
¡Espero que alguien encuentre esto tan útil como yo!
fuente
Mis propios DroidParts /http://droidparts.org/ acaban de llegar a la v0.5. Es una biblioteca DI / ORM y más.
No hay mucha documentación, pero incluye una aplicación de muestra.
fuente
Tenía experiencia negativa con db4o (v. 8): la indexación no funcionó correctamente (excepción, etc.). Por lo tanto, no pude evitar crear duplicados en tablas extrañas al tener un objeto en la estructura del objeto. Explicación más detallada en mi pregunta . Espero que algún día sea mejor.
fuente