programacion - Capa de base de datos de nivel superior para Android?
manual android studio avanzado (12)
¿Hay buenas capas de abstracción de bases de datos / mapeos relacionales de objetos / implementaciones de ActiveRecord / como se llamen para Android? Soy consciente de que db4o es oficialmente compatible, pero tiene una huella bastante grande y prefiero usar una base de datos más convencional ( SQLite
).
Eche un vistazo a Androrm . Es de código abierto y está bien documentado ( ver aquí ). Si alguna vez trabajó con django, notará que la sintaxis es muy similar.
Androrm también admite clases de abstracción para los tipos de campo más comunes, además de campos relacionales. De esta manera, le permite consultar sus datos de una manera muy sencilla con muy poco esfuerzo de su parte.
Enfrenté el mismo problema y miré a android-active-record y ActiveAndroid. Descubrí que android-active-record no manejaba las cosas que me importaban (relaciones, por ejemplo), y ActiveAndroid no es gratuito. Por lo tanto, decidí escribir mi propia biblioteca. Se llama AndroidRecord y está alojado en GitHub y puedes hacer lo que quieras con él (creo que voy a ir con la licencia de MIT). Uso esto todos los días y estoy contento con él, pero me encantaría recibir comentarios.
Si necesita saber cómo usarlo, estoy trabajando en la documentación. Si lo necesitas de inmediato, puedes echar un vistazo a este proyecto de ejemplo poco convincente, que debería ser suficiente para meter los dedos del pie. También puedes enviarme un correo electrónico, por supuesto.
Estuve comparando conceptos básicos de ormlite y greendao hace algún tiempo. Es posible que desee echar un vistazo there . Planeo escribir algo de seguimiento con cosas más avanzadas en el futuro cercano, pero por ahora es solo una cosa básica. En mi propio proyecto estoy usando GreenDAO.
Existe un proyecto ''android-active-record'' que proporciona abstracción de ActiveRecord para acceder a la base de datos SQLite de Android. Está disponible aquí: http://code.google.com/p/android-active-record
Permite eliminar la mayor parte de la codificación repetitiva al realizar operaciones CRUD en entidades de bases de datos y también minimiza los esfuerzos para crear / mantener una estructura de base de datos
He escrito un nuevo ORM, para Android, que está dirigido y que es lo más fácil posible de implementar. Es compatible con listas y migración libre de SQL un par de cosas que siempre encontré tenían una sobrecarga en otras bibliotecas.
Probé el Sugar ORM, que es muy básico (y fácil de usar) pero funcionó para mis necesidades.
Prueba ActiveAndroid . Es gratis y de código abierto ( versión 2.0 de Apache ).
Desde el sitio web:
ActiveAndroid es un estilo de registro activo ORM (asignador relacional de objetos). [...] ActiveAndroid le permite guardar y recuperar registros de bases de datos SQLite sin tener que escribir una sola declaración SQL. Cada registro de la base de datos se integra ordenadamente en una clase con métodos como save () y delete ().
[...] Acceder a la base de datos es una molestia, por decir lo menos, en Android. ActiveAndroid se encarga de todo lo relacionado con la configuración y el desorden, y todo con solo unos simples pasos de configuración.
SQLite es explícitamente parte de Android:
http://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.html
Sin embargo, puede que tenga que crear su propia capa de abstracción (generador de consultas para consultas simples) o tratar con SQL.
Tal vez http://developer.android.com/reference/android/database/sqlite/SQLiteQueryBuilder.html es lo que necesitas?
Si el rendimiento y el tamaño importan, debería echarle un vistazo a nuestra herramienta ORM de código abierto greenDAO . Lo escribimos porque no queríamos comprometer la velocidad. Otras herramientas dependen en gran medida de la reflexión, que es muy lenta en Android. A pesar del pequeño tamaño (<100k), admite relaciones, constructores de consultas, etc.
Soy el autor principal de ORMLite que fue diseñado para ser pequeño [ish] pero que aún proporciona una funcionalidad de nivel superior. ORMLite realiza llamadas a las API de bases de datos nativas del sistema operativo Android para admitir su funcionalidad ORM. Consulte lo siguiente para obtener información general
Aquí hay algunas aplicaciones de ejemplo de Android:
También hay Neodatis y Prest (Lite).
He jugado con Prest hace un año y concluí que no vale la pena.
Después de todo, a) Android se ejecuta en un dispositivo bastante restringido con ~ 16mb de espacio de almacenamiento por aplicación yb) Sus clientes realmente apreciarían el rendimiento y el bajo consumo de energía.
Entonces mi consejo es ir con SQLite y SQL manuscrito. No es difícil en absoluto y las envolturas proporcionadas por Android SDK son realmente agradables.
EDITAR: en 2012, el consejo sería usar el componente ORM de DroidParts (que es mi proyecto).
Un plug desvergonzado, pero he estado trabajando en un nuevo framework de código abierto para Android llamado Infinitum . Una de sus características principales es un ORM que tiene una API de criterios similar a Hibernate y algunas otras características ingeniosas (asociaciones, carga diferida, etc.). Todavía está en sus primeras etapas, pero creo que está llegando bastante bien.