Lab BD II Semestre 2023
Lab BD II Semestre 2023
Lab BD II Semestre 2023
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;
//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) {
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>
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;
@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);
}
}