Portable JDBC vs SQLite en Android
Estoy utilizando SQLite en un proyecto utilizado por una aplicación de Android. Actualmente estoy utilizando la implementación SQLite proporcionada en android.database.sqlite
.
Quiero hacer una aplicación de escritorio que utiliza la misma base de código. Así que necesito separar todo el comportamiento compartido en un proyecto / jar portátil separado.
- Cómo agregar la cláusula de límite a manageQuery en android
- Obtener cadena, fecha, hora y int de sqlite base de datos en android
- ¿Cómo usar SQLite de Servicios en Android?
- Datos dinámicamente de datos de tabla de Android
- Prueba de unidad de base de datos SQLite de Android
Mi problema es que estoy haciendo un gran uso de android.database.sqlite
. Si es posible, no quiero volver a escribir cada llamada de acceso a la base de datos para ser compatible con JDBC o lo que tenga que usar sin usar el SQLite proporcionado por SQLite.
Para resolver este problema con un impacto mínimo en el código existente. Tengo la intención de escribir una interfaz SQLite (compatible con android.database.sqlite
) que el código compartido utilizará … en android será implementado trivialmente por android.database.sqlite
, y en el escritorio se implementará de alguna manera mutilando SQLite a través de JDBC para que coincida con android.database.sqlite
.
Esto está resultando difícil, ya que a menudo proporcionan Object[]
arrays para estar obligado a declaraciones preparadas que JDBC requiere tipificación estricta, y no estoy familiarizado con JDBC en absoluto.
¿Hay alguna otra manera de usar SQLite en Java que es similar a android.database.sqlite
, o cualquier otro enfoque que me puede ahorrar el esfuerzo (y depuración inevitable) asociado con la reescritura de muchos puntos de acceso a la base de datos?
Disclaimer: Nunca hasta ahora he intentado usar JDBC.
Pregunta simplificada: ¿Cuál es la mejor manera de usar SQLite en java? JDBC, otros?
- Cursor finalizado sin advertencia previa de cierre (). ¿Qué significa eso?
- Creación de restricciones de clave externa en ORMLite en SQLite
- Android SQLite - selecciónArgs que no sean cadenas
- Consulta SQL de Android con dos cláusulas "Where"
- Android SQLite Eliminar fila de la tabla Donde 2 Argumentos
- Base de datos SQLite de Android, ¿POR QUÉ caída de tabla y volver a crear en la actualización
- Cómo consultar una tabla FTS4 de contenido externo pero devolver columnas adicionales de la tabla de contenido original
- Android rawquery con cláusula Where dinámica
Creo que la creación de una envoltura sería una buena idea, pero puede implicar un gran esfuerzo en términos de desarrollo, así como las pruebas. Tal vez usted puede iniciar un proyecto en google y obtener un poco más personas involucradas.
En una nota lateral, creo que ya hay un proyecto en código de google llamado sqldroid
Esto es lo que haría:
- Crear una interfaz para operaciones de base de datos. Incluiría métodos para agregar, modificar, borrar registros y guardar / confirmar si es necesario. Esta interfaz podría extenderse cuando sea necesario.
- Cree una implementación para JDBC / SQLite. Tener una entrada de configuración para seleccionar la implementación apropiada preferiblemente en el tiempo de construcción.
Lo que esto significa en su caso es:
- Cree la interfaz.
- Cree una implementación que utilice internamente SQLite.
- Cree una implementación que utilice internamente alguna implementación JDBC.
De esta forma, su aplicación se abstraerá de la base de datos subyacente que se está utilizando. Esto mejorará la portabilidad.
Puede crear algo así como un DataMapper para su dominio para extender el patrón BCE a BCDE. El papel de un mapeador de datos es abstraer de la tecnología de base de datos subyacente para incrementar más tarde la reutilización
- Creación de una aplicación mediante la demostración WebRTC AppRtc
- GooglePlayServices Problema de Admob: "No se pudo cargar anuncio: 0"