Está en la página 1de 11

INSTITUTO TECNOLOGICO DE

CHILPANCINGO
INGENIERIA EN SISTEMAS

BASE DE DATOS EN
ANDROID
Fundamentos De Cmputo Mvil
ALUMNO: CARLOS ALBERTO ANGEL
ANGEL
MC.
JOS
CASTRO

BASE DE DATOS EN ANDROID

MARIO

MARTNEZ

MARZO DEL 2015 CHILPANCINGO GRO.

2
INGENIERIA EN SISTEMAS COMPUTACIONALES
FUNDAMENTOS DE COMPUTO MOVIL

Contenido
SQLITE................................................................................................................. 1
Caractersticas................................................................................................. 2
Ventajas........................................................................................................... 2
Desventajas..................................................................................................... 2
CREAR UNA BASE DE DATOS............................................................................... 3
SQLiteOpenHelper........................................................................................... 3
Clase SQLHelper.............................................................................................. 4
ACCEDER A NUESTRA BASE DE DATOS...............................................................6
CLASE MainActivity.......................................................................................... 6
EJECUTAR NUESTRA APLICACIN.........................................................................9

SQLITE

2
INGENIERIA EN SISTEMAS COMPUTACIONALES
FUNDAMENTOS DE COMPUTO MOVIL

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.

2
INGENIERIA EN SISTEMAS COMPUTACIONALES
FUNDAMENTOS DE COMPUTO MOVIL

CREAR UNA BASE DE DATOS


SQLiteOpenHelper

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.

Elementos de la clase SQLiteOpenHelper

Un constructor.
Dos mtodos:
onCreate()
onUpgrade()

En nuestro caso crearemos una base de datos llamada Empledos.

El
mtodo onCreate() ser
ejecutado
automticamente
por
nuestra
clase SQLHelper cuando 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, llamado execSQL().
Este mtodo se limita a ejecutar directamente el cdigo SQL que le pasemos
como parmetro.

El mtodo onUpgrade() se lanzar automticamente cuando sea necesaria una


actualizacin de la estructura de la base de datos o una conversin de los datos.

2
INGENIERIA EN SISTEMAS COMPUTACIONALES
FUNDAMENTOS DE COMPUTO MOVIL

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, "

2
INGENIERIA EN SISTEMAS COMPUTACIONALES
FUNDAMENTOS DE COMPUTO MOVIL
+ " nombre TEXT, "
+ " apellido_paterno TEXT, "
+ " apellido_materno TEXT,"
+ " departamento TEXT ) ");
db.execSQL("insert into Empleado
(dni,nombre,apellido_paterno,apellido_materno,departamento)
+ "('1','carlos alberto','angel','angel','11')");
db.execSQL("insert into Empleado
(dni,nombre,apellido_paterno,apellido_materno,departamento)
+ "('2','jose pablo','soriano','jimenez','11')");
db.execSQL("insert into Empleado
(dni,nombre,apellido_paterno,apellido_materno,departamento)
+ "('3','antonio','marcos','mosso','21')");
db.execSQL("insert into Empleado
(dni,nombre,apellido_paterno,apellido_materno,departamento)
+ "('4','ivan arturo','juarez','parra','31')");

values "
values "
values "
values "

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

4. Asi se visualizara nuestra clase una vez terminada

2
INGENIERIA EN SISTEMAS COMPUTACIONALES
FUNDAMENTOS DE COMPUTO MOVIL

Una vez definida nuestra clase SQLHelper, la apertura de la base de datos desde
nuestra aplicacin es mas sencillo.
Lo primero ser crear un objeto de la clase UsuariosSQLiteHelper al 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.

2
INGENIERIA EN SISTEMAS COMPUTACIONALES
FUNDAMENTOS DE COMPUTO MOVIL
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<String> arreglo =
new ArrayList<String>(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<String> adapter = new ArrayAdapter<String>(
this,
android.R.layout.simple_list_item_1,
arreglo);
lstv.setAdapter(adapter);
} else {
ArrayList<String> arreglo = new ArrayList<String>(1);
arreglo.add("Sin Datos");
ArrayAdapter<String> adapter = new ArrayAdapter<String>(
this,
android.R.layout.simple_list_item_1,
arreglo
);

2
INGENIERIA EN SISTEMAS COMPUTACIONALES
FUNDAMENTOS DE COMPUTO MOVIL
}

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.

2
INGENIERIA EN SISTEMAS COMPUTACIONALES
FUNDAMENTOS DE COMPUTO MOVIL

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.
<ListView
android:id="@+id/lista"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
</ListView>

2
INGENIERIA EN SISTEMAS COMPUTACIONALES
FUNDAMENTOS DE COMPUTO MOVIL

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

También podría gustarte