Programación Android, Ejemplo de Bases de datos & ListView III

Android SQLite

En la entrada anterior sobre el manejo de bases de datos nos quedamos en el punto en que habíamos copiado los datos de una tabla a otra, pero nos faltaba mostrarlos en el segundo ListView, que iba a contener un Adapter personalizado para poder mostrar los 3 campos que guardamos en la tabla.

Crear el Adapter personalizado

El Adapter lo vamos a crear siguiendo los pasos que ya dijimos en las entradas:

En primer lugar crearemos la vista del ítem del ListView, con 3 TextView en los que mostrar los datos:

<!--?xml version="1.0" encoding="utf-8"?-->








Leer más…

Programación Android, Ejemplo de Bases de datos & ListView II

Android SQLite

En la anterior publicación sobre el manejo de bases de datos nos quedamos en el punto en el que teníamos que recoger los datos de la BD para mostrarlos en el primer ListView.

Creando la clase Modelo

Para hacer esto en primer lugar vamos a crear una nueva clase, que actuará de Modelo de datos, es decir, será una clase que va a representar la estructura de la tabla a la que queremos acceder, de manera que los datos de cada tupla de la tabla se almacenarán en un objeto de la clase Modelo creada:

/**
 * Clase Modelo de las tablas de la BD.
 *
 * @author ProyectoSimio
 *
 */
public class DatosTabla {
	private int _id;
	private String nombre, apellido, telefono;

	/**
	 * Constructor de la clase Modelo para las tablas de la BD
	 *
	 * @param _id
	 * @param nombre
	 * @param apellido
	 * @param telefono
	 */
	public DatosTabla(int _id, String nombre, String apellido, String telefono) {
		this._id = _id;
		this.nombre = nombre;
		this.apellido = apellido;
		this.telefono = telefono;
	}

	// Getters & setters:
	public String getNombre() {
		return nombre;
	}

	public void setNombre(String nombre) {
		this.nombre = nombre;
	}

	public String getApellido() {
		return apellido;
	}

	public void setApellido(String apellido) {
		this.apellido = apellido;
	}

	public String getTelefono() {
		return telefono;
	}

	public void setTelefono(String telefono) {
		this.telefono = telefono;
	}

	// El campo _id es la clave primaria que no tiene sentido modificar, por lo
	// tanto no le creamos un set a este campo.
	public int get_id() {
		return _id;
	}

}

Leer más…

Programación Android, Base de Datos III

Android SQLite
En la última entrada mostramos cómo crear la base de datos para nuestra aplicación, así como las tablas, y qué métodos eran necesarios para ello. Lo último que nos falta por hacer es poder gestionarla. Es decir, añadir, borrar, actualizar y recuperar datos de la BD. Esto es lo que vamos a tratar de explicar en esta ocasión.

En la creación de la BD ya mostramos el método que nos permite pasar una sentencia SQLite completa, cuando creamos la tabla. En esta ocasión vamos a explicar una serie de métodos que nos facilitarán la tarea y, en la mayoría de los casos, evitarán que tengamos que escribir sentencias SQLite completas, aunque también explicaremos un nuevo método con el que recuperar la información de la BD a partir de una sentencia, para aquellos casos en que se haga necesario.

En Android, como hemos dicho, disponemos de métodos que nos van a facilitar las acciones más comunes en nuestra BD, de manera que gran parte de nuestras necesidades quedarán cubiertas sin necesidad de escribir largas sentencias SQLite, que en su lugar cambiaremos por algunos parámetros que pasamos a una determinada función. Empezaremos por explicar cómo insertar datos en nuestra tabla.

Insertar registros en la Base de Datos

En el objeto que creamos de la clase SQLiteDatabase, que en nuestro caso nombramos sqlDB, disponemos de un método que nos permite insertar datos en nuestras tablas de forma sencilla:

public long insertOrThrow (String table, String nullColumnHack,
                             ContentValues values)

Leer más…

Programación Android, Base de Datos II

Android SQLite

Como dijimos en la entrada anterior, en Android se utilizan bases de datos SQLite, aprovechando que es un sistema muy ligero y que ofrece la suficiente potencia para poder controlar todos los datos que necesitemos en nuestras aplicaciones.

En esta entrada vamos a crear la clase de nuestro proyecto que se va a encargar de controlar la Base de Datos de la aplicación, y mostraremos las variables que son obligatorias, así como los métodos utilizados para crear la Base de Datos y la tabla, o las tablas si se utilizarán varias, en la que almacenar los datos. En el ejemplo que vamos a poner a continuación utilizaremos una única tabla, para simplificar la explicación y que quede más clara. Sin embargo más adelante haremos otro ejemplo con el que trabajar con diferentes tablas, utilizando la Programación Orientada a Objetos para que nuestro código quede más claro.

Creando la clase Adaptador de la Base de Datos

En primer lugar debemos crear una nueva clase, que llamaremos DBAdapter (el nombre no es obligatorio, pero siempre es conveniente utilizar un nombre que deje claro para qué sirve la clase), y va a contener las siguientes variables obligatoriamente:

private final static int DB_VERSION = 1;
private final static String DB_NAME = "nombreDB";
private final static String TB_NAME = "nombreTabla";

Estos valores indican:

  • DB_VERSION: Versión de la base de datos que estamos utilizando. Se utiliza para cuando se realizan actualizaciones en la estructura de la BD, hará que automáticamente se actualice la BD del dispositivo al actualizar la aplicación. Más adelante indicaremos cómo sucede esto con más detalle.
  • DB_NAME: Nombre de la BD, si nuestra BD se llamará dbUsers, por ejemplo, ese será el valor que indiquemos en el String.
  • TB_NAME: Nombre de la tabla que contendrá la BD. Al igual que con el nombre de la BD, el valor del String será el nombre de la tabla que queramos. Esta variable conviene no llamarla exactamente así, ya que podemos contener varias tablas en nuestra BD, por lo que es conveniente nombrar la variable de forma que haga referencia al nombre de la tabla.

Leer más…