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.

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?

3 Solutions collect form web for “Portable JDBC vs SQLite en Android”

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:

  1. 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.
  2. 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:

  1. Cree la interfaz.
  2. Cree una implementación que utilice internamente SQLite.
  3. 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

  • Datos de SQLite a un RecyclerView
  • Java.lang.StackOverflowError
  • Sqlite Añadir columna en la tabla en una posición determinada (Android)
  • DB SQLite de Android Cuando cerrar
  • ¿Cómo consultar la base de datos SQLite con dos condiciones?
  • ¿Cómo eliminar todos los registros de la tabla en sqlite con Android?
  • ¿Cómo acceder a la base de datos cuando se desarrolla en el teléfono Android?
  • Problema con SQLite DB para Android
  • Android - ¿Cuáles son las buenas herramientas de informes para diseñar y generar informes desde SQLite Data Source?
  • Administración de conexiones SQLite en Android
  • Atascado con diseño de SQL android utilizando SQLite y Group By
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.