2010-12-30 20 views
5

Necesito abrir, leer e insertar elementos en una base de datos SQLite en línea desde una aplicación de Android.
Sé url, nombre de usuario y contraseña. En JavaSE yo haría lo siguiente:Android - Acceso a la base de datos en línea SQlite

Class.forName("com.mysql.jdbc.Driver"); 
Connection dbConnection = DriverManager.getConnection(URL, USER, PASSWORD); 

leí que no puedo hacer esto en Android, ya que no es un controlador JDBC (hay un "SQLite.JDBCDriver" pero no está documentado y no se recomienda).
Entonces, ¿cuál es la forma más fácil? Le pregunté a Google, pero parece que él tampoco lo sabe.

+3

Sospecho que la forma "correcta" sería crear un servicio web RESTful como interfaz para su base de datos. –

Respuesta

2

Usted debe exponer a su fuente de datos como éste a través de un intermediario, como un servicio Web de al menos las siguientes razones:

  • alguien tiene acceso directo a su fuente de datos y puede leer, manipular o destruir los datos
  • abstracción; puede controlar la forma en que se envían los datos y cómo se representan. En caso de que las tablas/objetos de la base de datos cambien, solo deberá cambiar el servicio web en lugar de forzar una actualización (en algunos casos)
  • La interacción JSON es muy compatible con Android de fábrica, mientras que JDBC no (por razones previamente documentadas)

Estoy seguro de que hay muchas más razones, pero las anteriores son las más prevalentes en mi mente.

2

No hay soporte oficial para JDBC en Android. Hay un controlador SqlLite privado, pero no se recomienda ya que no es compatible y podría desaparecer en el futuro.

Leer siguientes:

Does Android Support JDBC

http://groups.google.com/group/android-developers/browse_thread/thread/cf3dea94d2f6243c

http://code.google.com/p/sqldroid/

lo tanto, el método recomendado es no utilizar controlador SQlite interna (privada) y en su lugar crear una capa REST en el servidor a través del cual Accedes a los datos. Esta es una forma recomendada, ya que minimiza la carga en el lado del dispositivo y también le da la oportunidad de crear autenticación en el lado del servidor: tener acceso público a la conexión JDBC es un gran obstáculo.

+0

Ya leí estas tres páginas pero no me ayudan en la práctica :) ¿Qué clases debo usar? El uso de este controlador sqldroid es una buena idea? – Oneiros

+0

No use JDBC. Crea una capa REST en el servidor. Actualicé la respuesta. –

+1

Use Jersey para simplemente crear una capa REST: http://wikis.sun.com/display/Jersey/Main –

Cuestiones relacionadas