base de datos en android

14
ALUMNO: CARLOS ALBERTO ANGEL ANGEL MC. JOSÉ MARIO MARTÍNEZ CASTRO BASE DE DATOS EN ANDROID MARZO DEL 2015 CHILPANCINGO GRO. BASE DE DATOS EN ANDROID Fundamentos De Cómputo Móvil INSTITUTO TECNOLOGICO DE CHILPANCINGO INGENIERIA EN SISTEMAS

Upload: charly-braun

Post on 14-Nov-2015

30 views

Category:

Documents


0 download

DESCRIPTION

como hacer una aplicacion en android studio usando base de datos

TRANSCRIPT

BASE DE DATOS EN ANDROID

INGENIERIA EN SISTEMAS COMPUTACIONALES2

FUNDAMENTOS DE COMPUTO MOVIL

ContenidoSQLITE1Caractersticas2Ventajas2Desventajas2CREAR UNA BASE DE DATOS3SQLiteOpenHelper3Clase SQLHelper4ACCEDER A NUESTRA BASE DE DATOS6CLASE MainActivity6EJECUTAR NUESTRA APLICACIN9

SQLITE

SQLite es un proyecto de dominio pblico que implementa una pequea librera de aproximadamente 500KB programada en lenguaje C, que funciona como un sistema de gestin de base de datos relacionales.Caractersticas SQLite es un sistema completo de bases de datos que soporta mltiples tablas, ndices, triggers y vistas. No necesita un proceso separado funcionando como servidor ya que lee y escribe directamente sobre archivos que se encuentran en el disco duro. El formato de la base de datos es multiplataforma e indistintamente se puede utilizar el mismo archivo en sistemas de 32 y 64 bits. SQLite emplea registros de tamao variable de forma tal que se utiliza el espacio en disco que es realmente necesario en cada momento. Existe un programa independiente de nombre sqlite que puede ser utilizado para consultar y gestionar los ficheros de base de datos SQLite.Ventajas SQLite tiene una pequea memoria y una nica biblioteca es necesaria para acceder a bases de datos. SQLite realiza operaciones de manera eficiente y es ms rpido que MySQL y PostgreSQL. SQLite se ejecuta en muchas plataformas y sus bases de datos pueden ser fcilmente portadas sin ninguna configuracin o administracin. SQLite cuenta con diferentes interfaces del API, las cuales permiten trabajar con C++, PHP, Perl, Python, Ruby, Tcl, Groovy, Qt ofrece el plugin qsqlite, etc. SQLite es de dominio pblico, y por tanto, es libre de utilizar para cualquier propsito sin costo.

Desventajas Limitaciones en Where: esta limitacin est dada por el soporte para clausuras anidadas. Falta de Clave Fornea: cuando se realice la creacin de la tabla desde el modo consola, est permitiendo el uso de la clausura, aunque no realizara el chequeo de la misma.

CREAR UNA BASE DE DATOSSQLiteOpenHelper

En Android, la forma tpica para crear, actualizar, y conectar con una base de datos SQLite ser a travs de una clase auxiliar llamadaSQLiteOpenHelper.

Elementos de la clase SQLiteOpenHelper Un constructor. Dos mtodos: onCreate() onUpgrade()

En nuestro caso crearemos una base de datos llamada Empledos.

El mtodoonCreate()ser ejecutado automticamente por nuestra claseSQLHelpercuando sea necesaria la creacin de la base de datos, es decir, cuando an no exista. Las tareas tpicas que deben hacerse en este mtodo sern la creacin de todas las tablas necesarias y la insercin de los datos iniciales si son necesarios. En nuestro caso vamos a crear dos tablas, la de Empleado y la de departamento. Para la creacin de la tabla utilizaremos la sentencia SQL ya definida y la ejecutaremos contra la base de datos utilizando el mtodo ms sencillo de los disponibles en la API de SQLite proporcionada por Android, llamadoexecSQL(). Este mtodo se limita a ejecutar directamente el cdigo SQL que le pasemos como parmetro.

El mtodoonUpgrade()se lanzar automticamente cuando sea necesaria una actualizacin de la estructura de la base de datos o una conversin de los datos.

A continuacin se visualizara la clase que creamos y que se llama SQLHelper que hereda de la clase SQLiteOpenHelper.

Clase SQLHelper

1. Crear la clase SQLHelper que heredara de la clase SQLiteOpenHelper.

package com.example.charly.empleados;

import android.content.Context;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteOpenHelper;

public class SQLHelper extends SQLiteOpenHelper{}

2. Crear una variable string la cual contenga el nombre de la base de datos.public static final String DATABASE_NAME = "Empleado.db";

3. Dentro del metodo onCreate crearemos las tablas de nuestra base de datos, asiendo uso de la instruccin execSQL(), y dejaremos el mtodo onUpgrade( ) para que actualize nuestra base de datos.public void onCreate(SQLiteDatabase db) { // TODO Auto-generated method stub db.execSQL("CREATE TABLE IF NOT EXISTS departamento ( " + " id PRIMARY KEY, " + " nombre TEXT )"); db.execSQL("insert into departamento (id,nombre) values ('11','Laboratorio')"); db.execSQL("insert into departamento (id,nombre) values ('21','Salon AudioVisual')"); db.execSQL("insert into departamento (id,nombre) values ('31','Ensamblado')"); db.execSQL("insert into departamento (id,nombre) values ('41','Ventas')"); db.execSQL("CREATE TABLE IF NOT EXISTS empleado ( " + " dni PRIMARY KEY, " + " nombre TEXT, " + " apellido_paterno TEXT, " + " apellido_materno TEXT," + " departamento TEXT ) "); db.execSQL("insert into Empleado (dni,nombre,apellido_paterno,apellido_materno,departamento) values " + "('1','carlos alberto','angel','angel','11')"); db.execSQL("insert into Empleado (dni,nombre,apellido_paterno,apellido_materno,departamento) values " + "('2','jose pablo','soriano','jimenez','11')"); db.execSQL("insert into Empleado (dni,nombre,apellido_paterno,apellido_materno,departamento) values " + "('3','antonio','marcos','mosso','21')"); db.execSQL("insert into Empleado (dni,nombre,apellido_paterno,apellido_materno,departamento) values " + "('4','ivan arturo','juarez','parra','31')");

}

@Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { // TODO Auto-generated method stub }

4. Asi se visualizara nuestra clase una vez terminada

Una vez definida nuestra claseSQLHelper, la apertura de la base de datos desde nuestra aplicacin es mas sencillo. Lo primero ser crear un objeto de la claseUsuariosSQLiteHelperal que pasaremos

ACCEDER A NUESTRA BASE DE DATOS

Una vez definida nuestra clase SQLHelper, acceder a la base de datos resulta algo sencillo.CLASE MainActivity

1. Lo primero que tenemos que hacer es crear un objeto de la clase SQLHelper, una variable de tipo SQLiteDatabase y una lista en la cual agregaremos los datos obtenidos de una consulta. SQLHelper sqlhelper; SQLiteDatabase db; ListView lstv;

2. Crearemos un mtodo llamado onCreate() en el cual guardara la instancia y creara la lista para que sea visualizada, por ltimo se realiza la llamada al mtodo actualiza() que a continuacin crearemos.

protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);

lstv = (ListView) findViewById(R.id.lista);

actualiza(); }

3. Lo primero que tenemos que hacer es crear un mtodo llamado actualiza y aremos la llamada al mtodo getWritableDatabase() para realizar una consulta.

protected void actualiza() { sqlhelper = new SQLHelper(this); db = sqlhelper.getWritableDatabase();}

4. Crearemos una variable de tipo Cursor en la cual agregaremos la consulta de la tabla.Cursor c = db.rawQuery( "select " + "e.dni, " + "e.nombre, " + "e.apellido_paterno, " + "e.apellido_materno, " + "d.nombre " + " from empleado e " + " inner join departamento d " + " on e.departamento=d.id", null);

5. A continuacin comprobaremos si la consulta a la tabla tiene datos, si esto es as agregaremos los datos de la consulta dentro de una lista, de lo contrario visualizaremos un mensaje en el cual dir que no existen datos.

if (c.moveToFirst()) { ArrayList arreglo = new ArrayList(c.getCount()); do { String id = c.getString(0); String nom = c.getString(1); String ape_p = c.getString(2); String ape_m = c.getString(3); String dept = c.getString(4); arreglo.add("DNI: " + id + "\n Empleado: " + nom + " " + ape_p + " " + ape_m + "\nDepartamento: " + dept); } while (c.moveToNext());

ArrayAdapter adapter = new ArrayAdapter( this, android.R.layout.simple_list_item_1, arreglo); lstv.setAdapter(adapter); } else { ArrayList arreglo = new ArrayList(1); arreglo.add("Sin Datos"); ArrayAdapter adapter = new ArrayAdapter( this, android.R.layout.simple_list_item_1, arreglo ); lstv.setAdapter(adapter); }

6. Por ultimo dentro del mtodo actualiza() cerraremos la conexin con Close(). db.close();

7. Una vez terminado la clase MainActivity se visualizara de la siguiente manera.

EJECUTAR NUESTRA APLICACIN

Antes de ejecutar nuestra aplicacin, en el archivo activity_main.xml agregaremos la visualizacin de la lista que contiene la consulta de la tabla.

Ahora si solo ejecutamos nuestra aplicacin y se visualizara el siguiente resultado.

BASE DE DATOS EN ANDROIDMarzo del 2015 chilpancingo gro.