2012-02-18 17 views
7

Estoy creando mi primera aplicación de Android que hará uso de SQlite. Tengo cero experiencia con bases de datos, a excepción de la creación de una base de datos MySQL para usar con wordpress ...Uso de Rest para almacenar datos en Sqlite


Editar: Después de hacer algunas investigaciones sobre el resto, todavía estoy confundido acerca de cómo reposo, SQLite, y dev androide conjugarse. Mi objetivo es acceder a un servicio web basado en el descanso a través de una url y acceder a ciertos conjuntos de datos, y luego almacenarlos en mi base de datos SQlite. Luego quiero acceder a los contenidos de la base de datos a través de mi programa Java y usarlos en consecuencia.

Los conjuntos de datos se pueden descargar individualmente en CSV format, pero como voy a utilizar tantos de ellos, no quiero pasar por cada línea individualmente y almacenarlos en la base de datos. Espero que haya una manera más eficiente de almacenar estos conjuntos de datos en la base de datos.

Mis principales preguntas son:

  • ¿Cómo puedo copiar el contenido XML de una página web a partir de una URL en mi base de datos SQLite? ¿Puedo hacer esto con mi programa java, a través de la base de datos sqlite o una biblioteca java?
  • ¿Solo necesito copiar el contenido de las páginas web de la url en la base de datos sqlite una vez? Si es así, ¿qué puedo hacer si se cambia alguna información en los conjuntos de datos?

Respuesta

5

Primero necesita un esquema para su base de datos sqllite. Ese esquema debe asignarse a los objetos detrás del servicio web. Por ejemplo, necesita una tabla Person en su DB si hay una entidad Person en la web. Depende de lo que quieras capturar.

Cuando termine de diseñar el esquema, debe comenzar a escribir el código que lo ayuda a crear & administrar la base de datos en android. Esto se realiza con la ayuda de la clase SQLiteOpenHelper: http://developer.android.com/reference/android/database/sqlite/SQLiteOpenHelper.html

Si usted necesita para mantener la base de datos synce'd con los datos en la nube (servicios web), se deben implementar sincronización. Android proporciona un marco de sincronización muy eficiente.

También, ver este video de los ingenieros de Android explicar las mejores prácticas: http://www.youtube.com/watch?v=xHXn3Kg2IQE

Nota, se ha podido recuperar realmente los datos del servicio web que usaría URLConnection API: http://developer.android.com/reference/java/net/URLConnection.html

esta muestra probablemente capturas La mayor parte. http://developer.android.com/resources/samples/SampleSyncAdapter/index.html

+0

Gracias, estas referencias respondieron todas mis Q's !! – mdegges

0

Respondo su primera pregunta sobre "No estoy seguro de cómo agregarlos de manera eficiente"? sí, SQlite es muy potente e inteligente, puede agregar miles de registros en una transacción, al igual que la base de datos tradicional, mejora significativamente el rendimiento.

sobre la segunda pregunta, según tengo entendido, porque el archivo CVS es muy simple, por lo que puede descargarlo y analizarlo usted mismo.

3

En cuanto a la lectura de archivos CSV, hay algunos buenos recursos aquí:

Can you recommend a Java library for reading (and possibly writing) CSV files?

vez que haya leído cada línea CSV en un objeto, entonces se puede dar la vuelta y persistir se a la base de datos. Soy el autor de ORMLite, así que hablaré sobre su uso. No creo que haya un puerto de hibernación para Android.

Hay un número de Android examples para ayudarle a ponerse al día con ORMLite. También some good tutorials. Si desea escribir varias filas a la vez, le recomendaría utilizar la función ORMLite de tareas por lotes. Para obtener información, consulte el discussion about creating lists of objects en la lista de correo.

+0

Gracias por su respuesta. No sabía esto cuando publiqué mi pregunta ayer, pero hay una API en el sitio web que usa el resto para proporcionar acceso a los conjuntos de datos. Debido a que hay tantos conjuntos de datos grandes que necesito usar, y ahora que sé que hay una API específica, actualicé mi pregunta en consecuencia. – mdegges

+0

Hubiera creado otra pregunta porque ahora mi respuesta ahora no tiene sentido. @mdegges – Gray

Cuestiones relacionadas