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?

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

  • Guardar ArrayList en la base de datos SQLite en Android
  • Manera correcta de manejar Bidireccional 1: m en Green-DAO
  • Navegador de base de datos SQLite con Android
  • ¿Cómo puedo restablecer un número de secuencia autoincrement en sqlite
  • Cómo dividir valores separados por comas en SQLite?
  • Se une con ActiveAndroid - cómo obtener los datos de la segunda tabla
  • Tratar una gran base de datos en Android
  • Caracteres especiales de Android Sqlite
  • Consulta de eliminación de Android
  • Notificaciones de la base de datos SQLite de Android
  • Cómo recuperar datos de la base de datos sqlite en android y mostrarla en TextView
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.