Académique Documents
Professionnel Documents
Culture Documents
En Android, la forma tpica para crear, actualizar, y conectar con una base de datos SQLite ser a travs de una clase auxiliar llamada SQLiteOpenHelper. O para ser ms exactos, de una clase propia que derive de ella y que debemos personalizar para adaptarnos a las necesidades concretas de nuestra aplicacin
La API de SQLite de Android proporciona dos alternativas para realizar operaciones sobre la base de datos que no devuelven resultados.
Insercin Actualizacin eliminacin de registros, Creacin de tablas, de ndices Etc.
Mtodo execSQL()
De la clase SQLiteDatabase. Este mtodo permite ejecutar cualquier sentencia SQL sobre la base de datos, siempre que sta no devuelva resultados
Mtodo insert()
Para insertar nuevos registros en la base de datos. Recibe tres parmetros.
El primero de ellos ser el nombre de la tabla. El tercero sern los valores del registro a insertar. El segundo lo obviaremos por el momento ya que tan slo se hace necesario en casos muy puntuales (por ejemplo para poder insertar registros completamente vacos), en cualquier otro caso pasaremos con valor null este segundo parmetro.
Mtodo insert()
Los valores a insertar los pasaremos como elementos de una coleccin de tipo ContentValues. Esta coleccin es de tipo diccionario, donde almacenaremos parejas de clave-valor
la clave ser el nombre de cada campo el valor ser el dato correspondiente a insertar en dicho campo.
Mtodo insert()
Esta forma de pasar a la sentencia SQL determinados datos variables puede ayudarnos adems a escribir cdigo ms limpio y evitar posibles errores.
De forma anloga a lo que vimos para las sentencias de modificacin de datos, vamos a tener dos opciones principales para recuperar registros de una base de datos SQLite en Android
Utilizando directamente un comando de seleccin SQL. Utilizando un mtodo especfico donde parametrizremos la consulta a la base de datos
mtodo rawQuery()
De la clase SQLiteDatabase Recibe directamente como parmetro un comando SQL completo.
indicamos los campos a recuperar y los criterios de seleccin.
mtodo rawQuery()
Sirva la siguiente consulta a modo de ejemplo:
mtodo rawQuery()
Tambin podemos aadir a este mtodo una lista de argumentos variables que hayamos indicado en el comando SQL con el smbolo ?, por ejemplo as:
mtodo query()
De la clase SQLiteDatabase. Recibe varios parmetros:
El nombre de la tabla. Un array con los nombre de campos a recuperar. La clusula WHERE. Un array con los argumentos variables incluidos en el WHERE (si los hay, null en caso contrario). La clusula GROUP BY si existe. La clusula HAVING si existe. Por ltimo la clusula ORDER BY si existe. Opcionalmente, se puede incluir un parmetro ms al final indicando el nmero mximo de registros que queremos que nos devuelva la consulta.
mtodo query()
Veamos el mismo ejemplo anterior utilizando el mtodo query():
Los resultados se devuelven nuevamente en un objeto Cursor que deberemos recorrer para procesar los datos obtenidos.
Recorrer un Cursor
Para recorrer y manipular el cursor devuelto por cualquiera de los dos mtodos mencionados tenemos a nuestra disposicin varios mtodos de la clase Cursor.
moveToFirst(): mueve el puntero del cursor al primer registro devuelto. moveToNext(): mueve el puntero del cursor al siguiente registro devuelto.
Recorrer un Cursor
Los mtodos moveToFirst() y moveToNext() devuelven TRUE en caso de haber realizado el movimiento correspondiente del puntero sin errores. Posicionados en cada registro podremos utilizar cualquiera de los mtodos getXXX(ndice_columna) existentes para cada tipo de dato para recuperar el dato de cada campo del registro actual del cursor
Recorrer un Cursor
Con todo esto en cuenta, veamos cmo podramos recorrer el cursor devuelto por el ejemplo anterior:
Recorrer un Cursor
Con todo esto en cuenta, veamos cmo podramos recorrer el cursor devuelto por el ejemplo anterior: