NOVEDADES IMPORTANTES

Acceso a todos los contenidos

Hace unos meses decidimos suspender nuestra actividad de formación online en Digital Learning SL (propietaria de esta web).

Desde entones hemos mantenido operativos nuestra plataforma de teleformación y webs de contenidos Academia Android y Digital Learning, habilitando un acceso libre y gratuito a todos estos recursos, incluyendo cursos y contenidos Premium que antes requerían un registro y pago previo, lo que ha propiciado un volumen de visitas constante de usuarios que consultan esta formación.

Venta-traspaso de los contenidos

Creemos que estas webs por sus contenidos, posicionamiento SEO y atracción de tráfico (junto a sus cuentas en redes sociales asociadas, incluyendo Twitter y Facebook de nuestro curso de Community Manager) pueden ser una oportunidad para emprendedores o compañías de diversos ámbitos (formación, marketing y publicación online, desarrollo software,…) que quieran:

  • Captar usuarios, alumnos o clientes para sus proyectos, productos y servicios.
  • Comercializar los contenidos bajo múltiples fórmulas: venta de publicidad, modelos freemium o de pago, suscripciones…
  • Crear un nuevo proyecto a partir de esta infraestructura de recursos.

Si tú o tú empresa estáis interesados en adquirirlos, ofrecemos su traspaso en propiedad exclusiva. Puedes contactar conmigo en «contacto@digitallearning.es» (por favor entiende que los correos que no vengan suficientemente identificados no vamos a atenderlos). Gracias.

Manuel Cabello (Socio-Director de Digital Learning/Academia Android)

Este es el número de tutoriales publicados:

Pincha en los textos de los contadores de Tutoriales publicados, Premium o Series de tutoriales para tener un detalle de las publicaciones que comprenden.

Desde hace unos meses, todos los contenidos, incluidos los Premium, son accesibles libre y gratuitamente.

  • Premium
  • Acceso libre
130
Acceso libre
126
Premium

Algunos datos sobre los contenidos que hemos publicado hasta la fecha:

74
Videos
61
Proyectos descargables
contacto[arroba]digitallearning.es
Base De Datos SQLite En Android

SQLite en App Android: actualizar, eliminar y consultar datos

Post Series: Gestión de datos

Continuamos viendo la gestión de una base de datos SQLite, explicando en esta ocasión la actualización, eliminación y consulta de datos desde nuestra aplicación Android.

Recuerda que este contenido forma parte de nuestro curso de Programación de Apps con Android Studio

Actualización de datos

De nuevo, tendremos dos posibilidades para actualizar un registro ya insertado previamente en nuestra base de datos:

Usando de nuevo el método execSQL()  pero esta vez pasando como parámetro la sentencia SQL propia para la actualización de un campo.

Usando el método update()  que recibe cuatro parámetros:

  • El nombre de la tabla
  • El objeto ContentValues, que incluye los nuevos datos a modificar
  • la condición WHERE de la sentencia SQL
  • El cuarto es un caso especial que veremos a continuación en un ejemplo para que se entienda mejor.

Usando el método execSQL()  tendríamos lo siguiente:

Con el método update() tendremos dos formas de hacerlo, y aunque las dos son totalmente viables, la segunda es más recomendable por seguridad. Vamos a verlas:

En primer lugar crearíamos un ContentValues con el valor actualizado como sigue:

y a continuación, tendremos las dos alternativas posibles:

a) Poniendo el cuarto parámetro a null:

b) O bien usando el cuarto parámetro. En lugar de pasar directamente el argumento de la cláusula WHERE, le indicamos el valor ‘?’ y usamos el cuarto parámentro para indicarle estos argumentos, que en este caso sólo es uno:

Ambas formas producen el mismo resultado.

El segundo método es más recomendable por seguridad. Separar los valores de la comparación hace nuestro código menos vulnerable a posibles fallos con la sintaxis de la consulta, e incluso mas robusto ante posibles ataques, en caso de que construyamos la consulta de forma dinámica a partir de datos introducidos por el usuario manualmente.

Añadimos el código de la actualización de datos a nuestra aplicación:

Eliminación de datos

Para la eliminación de datos tendríamos de nuevo dos posibilidades:

Usar el método execSQL() , pasando como parámetro la sentencia SQL para la eliminación de datos.

Usar el método delete()  que recibirá tres parámetros:

  • nombre de la tabla
  • la cláusula WHERE
  • y el tercero, al igual que ocurría con el método update(), serían los argumentos de la cláusula WHERE,si así lo requiere, si no, tomaría el valor null.

Veamos un ejemplo usando ambos métodos, primero con execSQL():

Y ahora con update() usando el tercer parámetro:

Consulta de datos

Para consultar los datos almacenados en una base de datos, podremos usar dos métodos:

El método rawQuery() , el cual recibe dos parámetros:

  • uno será la sentencia SELECT propia de SQL
  • otro que indicará los argumentos de la cláusula WHERE si esta existiera.

El método query() , que recibe nada menos que siete parámetros.

Veámoslo por orden:

  1. Un string que será el nombre de la tabla sobre la que se realiza la consulta.
  2. Un array de strings representando las columnas que queremos recuperar. Si pasamos null a este parámetro, devolverá todas las columnas.
  3. Un string que representa la cláusula WHERE si es necesaria, si no ponemos este parámetro a null.
  4. Un array de strings representando los argumentos de la cláusula WHERE anterior, si fue null, este, parámetro también será puesto a null.
  5. Un string que representa la cláusula GROUP BY si es necesario, si no será null.
  6. Un string que representa la cláusula HAVING si es necesario, si no será null.
  7. Un string que representa la cláusula ORDER BY si es necesario, si no será null.

Ambos métodos devolverán un objeto de tipo Cursor que contendrá los datos de la consulta.

Veamos un ejemplo usando ambos métodos, empezando por rawQuery():

Y para el caso del método query():

Ambos cursores tendrán los mismos datos, que serán todos los de la tabla comments devolviendo los campos user y comment.

Veamos ahora cómo podemos acceder a los datos a través del cursor devuelto.

Para iterar sobre las filas devueltas por un cursor usaremos principalmente dos métodos:

moveToFirst()  para posicionarnos al principio del cursor

moveToNext() para movernos a la siguiente fila.

Para obtener los valores de cada fila, usaremos los métodos getString() , getInt() , getFloat() , etc., todas ellas recibiendo como único parámetro un entero que identifica la posición de la columna que queramos obtener.

En nuestro caso, cada fila de la base de datos estaba compuesta por tres columnas:

  • columna 0:  _id
  • columna 1: user
  • columna 2: comment

Si no sabemos con exactitud que posición ocupa la columna deseada, podemos recurrir al método getColumnIndex() , que recibe como parámetro una cadena de texto con el nombre de la columna de la cual queramos obtener el dato y devolviendo la posición que ocupa en la fila, y así asegurarnos que estamos obteniendo el valor deseado.

Un detalle importante a tener en cuenta es que una vez finalicemos de manejar el cursor, es conveniente llamar al método close()  para cerrarlo y así liberar todos sus recursos no pudiendo hacer uso de él más.

Veamos un ejemplo teniendo en cuenta nuestro cursor creado anteriormente:

Añadimos este código a nuestra aplicación quedando de la siguiente forma:

En los próximos tutoriales describiremos un proyecto ejemplo, mostrando la implementación de una base de datos SQLite en una App Android básica.