-
INTSTITUTO TECNOLGICO SUPERIOR DE EL MANTE
VALORACIN
DEPARTAMENTO ACADEMICO MATERIA: BASE DE DATOS PARA DISPOSITIVOS
MOVILES
GRUPO: G1501-0075
N CONTROL:
1001F0101 NOMBRE: Elizabeth Mrquez Guerrero
Practica Almacenamiento en una base de datos SQLite
FECHA:14/05/2015
PRIMERA PARTE CONSIDERACIONES
El reporte de prctica se manejar en la modalidad Reportes y se
orientar como un ejercicio para desarrollar en forma individual, y
el nfasis ser el manejo de la conexin con la base de datos.
El reporte corresponde a la mitad del curso y tiene un peso del
4% de la calificacin de la unidad. Se encuentra conformada por dos
componentes: el Anlisis Modular (40% de la prctica) y su
Implementacin (60% de la prctica) en el modo GUI de Android.
Se desarrollar en el lapso de un da conforme a la temtica
establecida por el docente en la primera sesin de la semana 12 (11
a 15 de mayo de 2015).
Se entregar a ms tardar el 14 de mayo de 2015 a las 4:00 p.m.,
va Google Class. La solucin deber subirse como una carpeta
comprimida con el nombre_apellido_Practica2a (nombre corresponde al
primer nombre, apellido al primer apellido).
La solucin incluye documento Word y el proyecto en Android
Studio comprimido como .zip. El documento en Word debe contener el
Anlisis Modular, imagen de la interfaz grfica de usuario (GUI) y
cdigo de la implementacin. El proyecto deber contener todos los
archivos generados por Android Studio para el tipo de aplicacin que
estamos manejando.
SEGUNDA PARTE
ESPECIFICACIN DEL CASO: Desarrollar uno de los ejercicios
nicamente segn indique el docente.
ENUNCIADO: Proyecto015 Confeccionar un programa que permita
almacenar los datos de votantes de una eleccin. Crear la tabla
votantes y definir los campos dni (documento de identidad),
nombre del votante, colegio donde vota y
nmero de mesa donde vota.
El programa debe permitir:
1 - Carga de personas.
2 - Consulta por el dni (para saber dnde vota)
3 - Borrado de personas
4 - Modificacin de datos. 1. Se ingresa la informacin (dni,
nombre y apellidos, nombre del colegio y nmero de mesa).
La salida deber mostrar (Esto es slo un ejemplo):
dni Nombre y apellidos Nombre del colegio Nmero de mesa
2 Elvia Enrquez Colegio Mxico 4
2. Alta (dni, nombre y apellidos, nombre del colegio y nmero de
mesa).
La salida deber mostrar (Esto es slo un ejemplo):
dni Nombre y apellidos Nombre del colegio Nmero de mesa
2 Elvia Enrquez Colegio Mxico 4
-
3. Consulta por dni (dni, nombre y apellidos, nombre del colegio
y nmero de mesa).
La salida deber mostrar (Esto es slo un ejemplo):
dni Nombre y apellidos Nombre del colegio Nmero de mesa
2
2 Elvia Enrquez Colegio Mxico 4
4. Baja por dni (dni, nombre y apellidos, nombre del colegio y
nmero de mesa).
La salida deber mostrar (Esto es slo un ejemplo):
dni Nombre y apellidos Nombre del colegio Nmero de mesa
2
5. Modificacin (dni, nombre y apellidos, nombre del colegio y
nmero de mesa).
6. La salida deber mostrar (Esto es slo un ejemplo):
dni Nombre y apellidos Nombre del colegio Nmero de mesa
2 Elvia Enrquez Colegio Mxico 4
2 Juana Perez Colegio Mante 4
-
TERCERA PARTE ANLISIS MODULAR DE LA SOLUCIN (40%)
A. Proceso:
Cuadro 1.
Proceso: onCreate Entradas Resultados Temporales Salidas
Tipo Identificacin Tipo Identificacin Tipo Identificacin
Constantes:
Proceso: Este mtodo crea la tabla votantes con los parmetros y
una primary key llamada dni
Cuadro 2.
Proceso: onUpgrade Entradas Resultados Temporales Salidas
Tipo Identificacin Tipo Identificacin Tipo Identificacin
Constantes:
Proceso: Este metodo onUpgrade Elimina la tabla votantes si es
que existe Crea la tabla votantes
Cuadro 3.
Proceso: onCreate clase MainActivity Entradas Resultados
Temporales Salidas
Tipo Identificacin Tipo Identificacin Tipo Identificacin
editText1 Et1
editText2 Et2
editText3 Et3
editText4 Et4
Constantes:
-
Proceso:
Et1 toma el valor del editText1 Et2 toma el valor del editText2
Et3 toma el valor del editText3 Et4 toma el valor del editText4
Cuadro 4.
Proceso: onCreateOptionsMenu Entradas Resultados Temporales
Salidas
Tipo Identificacin Tipo Identificacin Tipo Identificacin
Constantes:
Proceso:
En este mtodo se crea un objeto de la clase MenuInflater y
mediante el mtodo inflate vinculamos el identificador del archivo
de recursos: y el objeto de la clase menu que llega como parmetro.
Retorna true
Cuadro 5.
Proceso: onOptionsItemSelected (MenuItem item) Entradas
Resultados Temporales Salidas
Tipo Identificacin Tipo Identificacin Tipo Identificacin
int id
Constantes:
Proceso:
El parmetro item de la clase MenuItem tiene la referencia del
objeto que fue pulsado Este metodo se tiene un If para verificar si
el id fue seleccionado Luego obtenemos su Id llamando al mtodo
getItemId y a travs del If Retorna true Sino el elemento
seleccionado
Cuadro 6.
Proceso: alta Entradas Resultados Temporales Salidas
Tipo Identificacin Tipo Identificacin Tipo Identificacin
String dni editText et1
String nombre editText et2
String colegio editText et3
-
String nromesa editText et4
Constantes:
Proceso:
Abre la base de datos Escribe en la base de datos: El dni tipo
string y retorna una cadena que representa al objeto actual. El
nombre tipo string y retorna una cadena que representa al objeto
actual. El colegio tipo string y retorna una cadena que representa
al objeto actual. El nromesa tipo string y retorna una cadena que
representa al objeto actual. Registra los datos dni,nombre,colegio
y nromesa Cierra la base de datos et1 queda vacia et2 queda vacia
et3 queda vacia et4 queda vacia por ultimo muestra un mensaje que
se cargaron los datos de la persona
Cuadro 7.
Proceso: consulta Entradas Resultados Temporales Salidas
Tipo Identificacin Tipo Identificacin Tipo Identificacin
String dni editText Et2
editText Et3
editText Et4
Constantes:
Proceso:
Hace la llamada a la clase de la base de datos dni toma el valor
que est en et1 llama a la los datos de la fila si fila.movertofist
() tomamos los valores de los datos que se encuentran en et1, et2,
et3, et4 si no muestra No existe una persona con el dni ingresado
dni
Cuadro 8.
Proceso: baja Entradas Resultados Temporales Salidas
Tipo Identificacin Tipo Identificacin Tipo Identificacin
-
String editText Et1
Int editText Et2
editText Et3
editText Et4
Constantes:
Proceso:
Hace la llamada a la base de datos Dni toma el valor de et1 Cant
toma los valores de borrar registros en la base de datos En la base
de datos se borran los campos de los atributos et1,et2,et3,et4 Si
cant es igual a 1 Muestra un mensaje se borr la persona con dicho
documento Si no Muestra No existe una persona con dicho nombre
Cuadro 9.
Proceso: modificacin Entradas Resultados Temporales Salidas
Tipo Identificacin Tipo Identificacin Tipo Identificacin
String dni
String nombre
String colegio
String nromesa
Int cant
Constantes:
Proceso:
Se llama a la clase de la base de datos Escribimos sobre la base
de datos Dni toma el valor de et1 Nombre toma el valor de et2
Colegio toma el valor de et3 Nromesa toma el valor de et4 Se
escriben los valores en la base de datos Cant toma el valor de la
modificacin de la base de datos
-
Si esta escrito se muestra se modificaron los datos Si no
Muestra no existe una persona con dicho nombre
-
activity_main.xml
-
android:layout_alignParentLeft="true"
android:layout_below="@+id/textView3"
android:ems="10" />
-
android:layout_alignBottom="@+id/button3"
android:layout_alignLeft="@+id/button2"
android:onClick="modificacion"
android:text="Modificacin" />
-
MainActivity.java package com.example.user.proyecto015;
import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;
public class MainActivity extends ActionBarActivity {
private EditText et1, et2, et3, et4;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
et1 = (EditText) findViewById(R.id.et1);
et2 = (EditText) findViewById(R.id.et2);
et3 = (EditText) findViewById(R.id.et3);
et4 = (EditText) findViewById(R.id.et4);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is
present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so
long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
public void alta(View v) {
AdminSQLiteOpenHelper admin = new
AdminSQLiteOpenHelper(this,
"administracion", null, 1);
SQLiteDatabase bd = admin.getWritableDatabase();
String dni = et1.getText().toString();
-
String nombre = et2.getText().toString();
String colegio = et3.getText().toString();
String nromesa = et4.getText().toString();
ContentValues registro = new ContentValues();
registro.put("dni", dni);
registro.put("nombre", nombre);
registro.put("colegio", colegio);
registro.put("nromesa", nromesa);
bd.insert("votantes", null, registro);
bd.close();
et1.setText("");
et2.setText("");
et3.setText("");
et4.setText("");
Toast.makeText(this, "Se cargaron los datos de la persona",
Toast.LENGTH_SHORT).show();
}
public void consulta(View v) {
AdminSQLiteOpenHelper admin = new
AdminSQLiteOpenHelper(this,
"administracion", null, 1);
SQLiteDatabase bd = admin.getWritableDatabase();
String dni = et1.getText().toString();
Cursor fila = bd.rawQuery(
"select nombre,colegio,nromesa from votantes where dni=" +
dni
+ "", null);
if (fila.moveToFirst()) {
et2.setText(fila.getString(0));
et3.setText(fila.getString(1));
et4.setText(fila.getString(2));
} else
Toast.makeText(this, "No existe una persona con dicho dni",
Toast.LENGTH_SHORT).show();
bd.close();
}
public void baja(View v) {
AdminSQLiteOpenHelper admin = new
AdminSQLiteOpenHelper(this,
"administracion", null, 1);
SQLiteDatabase bd = admin.getWritableDatabase();
String dni = et1.getText().toString();
int cant = bd.delete("votantes", "dni=" + dni + "", null);
bd.close();
et1.setText("");
et2.setText("");
et3.setText("");
et4.setText("");
if (cant == 1)
Toast.makeText(this, "Se borr la persona con dicho
documento",
Toast.LENGTH_SHORT).show();
else
Toast.makeText(this, "No existe una persona con dicho
documento",
Toast.LENGTH_SHORT).show();
}
-
public void modificacion(View v) {
AdminSQLiteOpenHelper admin = new
AdminSQLiteOpenHelper(this,
"administracion", null, 1);
SQLiteDatabase bd = admin.getWritableDatabase();
String dni = et1.getText().toString();
String nombre = et2.getText().toString();
String colegio = et3.getText().toString();
String nromesa = et4.getText().toString();
ContentValues registro = new ContentValues();
registro.put("nombre", nombre);
registro.put("colegio", colegio);
registro.put("nromesa", nromesa);
int cant = bd.update("votantes", registro, "dni=" + dni,
null);
bd.close();
if (cant == 1)
Toast.makeText(this, "se modificaron los datos",
Toast.LENGTH_SHORT)
.show();
else
Toast.makeText(this, "no existe una persona con dicho
documento",
Toast.LENGTH_SHORT).show();
}
}
-
AdminSQLiteOpenHelper.java
package com.example.user.proyecto015;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;
public class AdminSQLiteOpenHelper extends SQLiteOpenHelper
{
public AdminSQLiteOpenHelper(Context context, String nombre,
CursorFactory factory, int version) {
super(context, nombre, factory, version);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("create table votantes(dni integer primary key,
nombre text, colegio text, nromesa integer)");
}
@Override
public void onUpgrade(SQLiteDatabase db, int versionAnte, int
versionNue) {
db.execSQL("drop table if exists votantes");
db.execSQL("create table votantes(dni integer primary key,
nombre text, colegio text, nromesainteger)");
}
}