Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Lab BD II Semestre 2023

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 6

Universidad Tecnológica de Panamá

Facultad Ingeniería de Sistemas Computacionales


Laboratorio de Bases de Datos
Profesor: Marlina Sánchez

Objetivos:
• Crear una aplicación que permita insertar, eliminar datos en una Base de Datos
• Usar SqLite para crear tablas, estructura interna de sus campos

1. Cree un nuevo proyecto llamado Base con una activity llamado MainActivity.
Y copie el siguiente código:

import androidx.appcompat.app.AppCompatActivity;

import android.app.AlertDialog;
import android.content.ContentValues;
import android.content.Context;
import android.content.DialogInterface;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {


EditText et_nombre;
EditText et_correo;
Button guardar;
Button borrar;
Button actualizar;
Button adelante;
Button atras;
Cursor c;
AlertDialog.Builder alertDialogBuilder;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

//definir los controles que estan en el main.xml

et_nombre = (EditText) findViewById(R.id.et1);


et_correo = (EditText) findViewById(R.id.et2);

guardar = (Button) findViewById(R.id.bt_insert);


borrar = (Button) findViewById(R.id.bt_delete);
actualizar = (Button) findViewById(R.id.bt_update);

adelante = (Button) findViewById(R.id.bt_adelante);


atras = (Button) findViewById(R.id.bt_atras);

//Abrir la bd en modo escritura


ClaseSQLiteBD1 csql = new ClaseSQLiteBD1(this, "Estudiantes.db", null, 1);
final SQLiteDatabase db = csql.getWritableDatabase();

//creando un cursor para obtener los datos de la BD


c = db.rawQuery("select * from contacto", null);

//declaracion del proveedor de contenidos


final ContentValues nuevoRegistro = new ContentValues();

alertDialogBuilder = new AlertDialog.Builder(this);

//boton guardar
guardar.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
//seteamos los registros al contenedor
nuevoRegistro.put("NOMBRE", et_nombre.getText().toString());
nuevoRegistro.put("CORREO", et_correo.getText().toString());
//insertamos el nuevo registro a la BD usando insert
db.insert("contacto", null, nuevoRegistro);
Toast.makeText(getApplicationContext(), "Contacto añadido correctamente", Toast.LENGTH_LONG).show();
et_nombre.setText("");
et_correo.setText("");
c = db.rawQuery("select * from contacto", null);
}
});

//boton borrar
borrar.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {

// Configura el titulo.
alertDialogBuilder.setTitle("Confirmacion");
// Configura el mensaje.
alertDialogBuilder
.setMessage(" ¿Está seguro de eliminar el registro?")
.setCancelable(false)
.setPositiveButton("Si",new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog,int id) {
String ID = String.valueOf(c.getInt(0));
db.delete("contacto", "_id=?", new String[]{ID});
et_nombre.setText("");
et_correo.setText("");
Context context = getApplicationContext();
CharSequence text = "REGISTRO ELIMINADO";
int duration = Toast.LENGTH_LONG;
Toast toast = Toast.makeText(context, text, duration);
toast.show();
c = db.rawQuery("select * from contacto", null);
}
})
.setNegativeButton("No",new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,int id) {
dialog.cancel();
}
}).create().show();
}
});

//actualizar
actualizar.setOnClickListener(new View.OnClickListener() {
public void onClick(View arg0) {

// Configura el titulo.
alertDialogBuilder.setTitle("Confirmacion");
// Configura el mensaje.
alertDialogBuilder
.setMessage(" ¿Está seguro de Actualizar el registro?")
.setCancelable(false)
.setPositiveButton("Si",new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog,int id) {

ContentValues nuevoRegistro = new ContentValues();


nuevoRegistro.put("NOMBRE", et_nombre.getText().toString());
nuevoRegistro.put("CORREO", et_correo.getText().toString());
String ID = String.valueOf(c.getInt(0));
int cant = db.update("contacto", nuevoRegistro, "_id = ?", new String[]{ID});
if (cant == 1){
Toast.makeText(getApplicationContext(), "se modificaron los datos",Toast.LENGTH_SHORT).show();
c = db.rawQuery("select * from contacto", null);
et_nombre.setText("");
et_correo.setText("");
}
else{
Toast.makeText(getApplicationContext(), "no existe un contacto con dicho documento",Toast.LENGTH_SHORT).show();
}
}
})
.setNegativeButton("No",new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,int id) {

dialog.cancel();
}
}).create().show();
}
});

//boton atras
atras.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
try {
//mueve el cursor una posicion atras
c.moveToPrevious();
et_nombre.setText(c.getString(1));
et_correo.setText(c.getString(2));
} catch (Exception e) {
c.moveToLast();
et_nombre.setText(c.getString(1));
et_correo.setText(c.getString(2));
}
}

});

//boton adelante
adelante.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
try {
//mueve el cursor una posicion adelante
c.moveToNext();
et_nombre.setText(c.getString(1));
et_correo.setText(c.getString(2));
} catch (Exception e) {
c.moveToFirst();
et_nombre.setText(c.getString(1));
et_correo.setText(c.getString(2));
}
}

});
}
}
2. En el archivo manifesto.xml agregue los siguientes controles:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/LinearLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity" >

<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/str_nombre" />

<EditText
android:id="@+id/et1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10" >

<requestFocus />
</EditText>

<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/str_correo" />

<EditText
android:id="@+id/et2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >

<Button
android:id="@+id/bt_insert"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/str_insertar" />

<Button
android:id="@+id/bt_delete"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/str_delete" />

<Button
android:id="@+id/bt_update"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/str_update" />

</LinearLayout>

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >

<Button
android:id="@+id/bt_adelante"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/str_adelante" />

<Button
android:id="@+id/bt_atras"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/str_atras" />

</LinearLayout>
</LinearLayout>

3. Modifique el archivo String xml

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


<string name="app_name">EjemploBD</string>
<string name="action_settings">Settings</string>
<string name="str_nombre">Nombre</string>
<string name="str_correo">Correo Eléctrico</string>
<string name="str_insertar">Insertar</string>
<string name="str_delete">Eliminar</string>
<string name="str_update">Actualizar</string>
<string name="str_atras">Atras</string>
<string name="str_adelante">Adelante</string>
</resources>
4. Agregue una clase nueva llamada ClaseSQLiteBD1.java:

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

public class ClaseSQLiteBD1 extends SQLiteOpenHelper{


public static final String DataBaseName="Estudiantes.db";
public static final int dbversion=1;

public ClaseSQLiteBD1(Context context, String name, CursorFactory factory,


int version) {
super(context, DataBaseName, factory, dbversion);
// TODO Auto-generated constructor stub
}

@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
//se ejecuta la primera vez para crear la BD
db.execSQL("Create table contacto (_id INTEGER PRIMARY KEY AUTOINCREMENT, NOMBRE TEXT,
CORREO TEXT);");
}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
db.execSQL("DROP TABLE IF EXISTS contacto;");
onCreate(db);
}
}

5. Corra el programa en el simulador:


• Puede cambiar el texto de los botones
• Inserte Datos
• Elimine

También podría gustarte