Bienvenidos al Blog el Inform谩tico Ibero en este post veremos como crear una base de datos SQLite en nuestro proyecto trabajando con el IDE Android Studio.
Video Tutoriales:
Video : Listar datos y mostrar en ListView - CRUD con SQLITE en Android Studio parte 1
Video : Implementar los metodo Guardar,Consultar,Actualizar,Eliminar-CRUD con SQLITE en Android Studio
Primero tenemos que crear nuestro proyecto con la actividad empty Activity.
Creado el proyecto nos dirigimos al archivo de la ruta nombre del proyecto > app > src > main > res > layout > activity_main.xml, dise帽amos la interfaz grafica.
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
tools:context=".MainActivity">
<EditText
android:id="@+id/edtcodigo"
android:layout_width="160dp"
android:layout_height="42dp"
android:layout_marginStart="10dp"
android:layout_marginTop="16dp"
android:layout_marginEnd="38dp"
android:ems="10"
android:inputType="number"
app:layout_constraintEnd_toStartOf="@+id/btnconsultar"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:autofillHints="" />
<Button
android:id="@+id/btnconsultar"
android:layout_width="156dp"
android:layout_height="42dp"
android:layout_marginTop="16dp"
android:layout_marginEnd="4dp"
android:onClick="consulta"
android:text="consultar"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<EditText
android:id="@+id/edtcurso"
android:layout_width="160dp"
android:layout_height="46dp"
android:layout_marginStart="10dp"
android:layout_marginTop="8dp"
android:ems="10"
android:inputType="textPersonName"
app:layout_constraintEnd_toStartOf="@+id/button2"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/edtcodigo" />
<EditText
android:id="@+id/edtnota1"
android:layout_width="160dp"
android:layout_height="40dp"
android:layout_marginStart="10dp"
android:layout_marginTop="12dp"
android:ems="10"
android:inputType="number"
app:layout_constraintEnd_toStartOf="@+id/button3"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/edtcurso" />
<EditText
android:id="@+id/edtnota2"
android:layout_width="160dp"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:ems="10"
android:inputType="number"
app:layout_constraintEnd_toStartOf="@+id/button4"
app:layout_constraintHorizontal_bias="0.128"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/edtnota1" />
<EditText
android:id="@+id/edtnota3"
android:layout_width="160dp"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:ems="10"
android:inputType="number"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.042"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/edtnota2" />
<EditText
android:id="@+id/edtpromedio"
android:layout_width="160dp"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:ems="10"
android:inputType="number"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.04"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/edtnota3" />
<Button
android:id="@+id/button2"
android:layout_width="156dp"
android:layout_height="42dp"
android:layout_marginTop="12dp"
android:layout_marginEnd="4dp"
android:onClick="Alta"
android:text="Guardar"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@+id/btnconsultar" />
<Button
android:id="@+id/button3"
android:layout_width="156dp"
android:layout_height="42dp"
android:layout_marginTop="12dp"
android:layout_marginEnd="4dp"
android:onClick="modificacion"
android:text="modificar"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@+id/button2" />
<Button
android:id="@+id/button4"
android:layout_width="156dp"
android:layout_height="42dp"
android:layout_marginTop="12dp"
android:layout_marginEnd="4dp"
android:onClick="baja"
android:text="eliminar"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@+id/button3" />
<ListView
android:id="@+id/lvtablanotas"
android:layout_width="fill_parent"
android:layout_height="226dp"
android:layout_marginTop="24dp"
app:layout_constraintTop_toBottomOf="@+id/edtpromedio"
tools:layout_editor_absoluteX="1dp"
tools:ignore="MissingConstraints" />
</androidx.constraintlayout.widget.ConstraintLayout>
Luego creamos una clase java llamada DBHelper.java
package informatico.to.registronotabd;Un vez creado la clase para la base de datos nos dirigimos a la clase MainActivity.java del proyecto y escribimos el c贸digo.
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import androidx.annotation.Nullable;
import java.util.ArrayList;
/** * Created by RAUL hacemos que herede de SQliteOpenHelper */
public class BDHelper extends SQLiteOpenHelper{
/*Exportamos todos los metodos de la clase que heredo*/
public BDHelper(@Nullable Context context, @Nullable String name,
@Nullable SQLiteDatabase.CursorFactory factory,
int version) {
super(context, name, factory, version);
}
/*Oncreate metodo para crear la base de datos al lanzar la actividad */
@Override
public void onCreate(SQLiteDatabase db) {
/*db es un objeto de SQLiteDatabase lo resto es sentencias de sql*/
db.execSQL("create table registro(codigo integer primary key unique," +
"curso text not null," +
"nota1 integer not null," +
"nota2 integer not null," +
"nota3 integer not null," +
"promedio integer not null)");
}
/*si la tabla existe primero lo borramos*/
/*luego creamos nuevamente la base de datos*/
@Override
public void onUpgrade(SQLiteDatabase db, int i, int i1) {
db.execSQL("drop table if exists registro");
db.execSQL("create table registro(codigo integer primary key unique," +
"curso text not null," +
"nota1 integer not null," +
"nota2 integer not null," +
"nota3 integer not null," +
"promedio integer not null)");
}
//metodo listar registro de la db para extraer y mostrar en el listview
public ArrayList<String> getAllRegistros()
{
/*creamos un arreglo de string */
ArrayList<String> array_list = new ArrayList<String>();
/*creamos un objeto de la base de datos y lo inicializamos
con el metodo que abre la base de datos para lectura */
SQLiteDatabase db = this.getReadableDatabase();
/*creamos un objeto de cursor y lo pasamos la query del select*/
Cursor res = db.rawQuery( "select * from registro", null );
/*movemos el cursor a la primera fila*/
res.moveToFirst();
/*hacemos un bucle while para la busqueda de datos */
while(res.isAfterLast() == false){
/*miestras encuentre datos que capture id es el 0 curso es 1 */
array_list.add("Id:" + res.getString(0) +" | "+"Curso"+" "+
res.getString(1) + " | "+ " Promedio " + res.getString(5) );
/*movemos el cursor a la siguiente linea*/
res.moveToNext();}
/*retornamos el arreglo de string*/
return array_list;
}
}
package informatico.to.registronotabd;
import androidx.appcompat.app.AppCompatActivity;
import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.Toast;
import java.util.ArrayList;
public class MainActivity extends AppCompatActivity {
//varoables locales de los controles o clases
private EditText et1,et2,et3,et4,et5,et6;
private Cursor fila;
ListView listaView;
/*creamos las variables de la base de datos*/
BDHelper admin;
SQLiteDatabase db;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//instanciamos las variables con los id de la vista
et1= (EditText) findViewById(R.id.edtcodigo);
et2= (EditText) findViewById(R.id.edtcurso);
et3= (EditText) findViewById(R.id.edtnota1);
et4= (EditText) findViewById(R.id.edtnota2);
et5= (EditText) findViewById(R.id.edtnota3);
et6= (EditText) findViewById(R.id.edtpromedio);
listaView = (ListView) findViewById(R.id.lvtablanotas);
//para que el campo promedio no pueda ser editado
et6.setEnabled(false);
//llamamos al metodo getAllRegistros que lista
admin = new BDHelper(this, "instituto", null, 1);
//obtenemos todos lo datos registrados de la base de datos.
ArrayList array_list = admin.getAllRegistros();
/*creamos un arreglo de string e instanciamos la forma de lista*/
ArrayAdapter<String> arrayAdapter= new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, array_list);
/*a listview los pasamos el arreglo de string instanciado*/
listaView.setAdapter(arrayAdapter);
}
//metodo guardar los datos
public void Alta(View view) {
/*instanciamos la variables de dbhelper y
le pasamos el contexto , nombre de base de datos*/
admin = new BDHelper(this, "instituto",
null, 1);
/*abrimos la base de datos pora escritura*/
db = admin.getWritableDatabase();
/*capturamos los datos de los edittext*/
String codigo = et1.getText().toString();
String curso = et2.getText().toString();
String nota1 = et3.getText().toString();
String nota2 = et4.getText().toString();
String nota3 = et5.getText().toString();
//calculamos el promedio
/*creamosd una variable inicilizado con cero*/
int promedioope=0;
/*capturamos los valores y lo sumamos*/
promedioope=Integer.parseInt(et3.getText().toString());
promedioope=promedioope+Integer.parseInt(et4.getText().toString());
promedioope=promedioope+Integer.parseInt(et5.getText().toString());
/*dividimpos la cantoidad de notas con la suma*/
promedioope=promedioope/3;
//convertir a string
String promedio=String.valueOf(promedioope);
//insertamos en la db los datos capturados
ContentValues registro = new ContentValues();
registro.put("codigo", codigo);
registro.put("curso", curso);
registro.put("nota1", nota1);
registro.put("nota2", nota2);
registro.put("nota3", nota3);
registro.put("promedio", promedio);
/*realizamos el insert en el resgitro*/
db.insert("registro", null, registro);
/*cerramos la base de datos*/
db.close();
/*listamos los datos registrados*/
ArrayList array_list = admin.getAllRegistros();
ArrayAdapter<String> arrayAdapter=new ArrayAdapter<String>(
this,android.R.layout.simple_list_item_1, array_list);
listaView.setAdapter(arrayAdapter);
/*limpiamos las cajas de textos*/
et1.setText("");
et2.setText("");
et3.setText("");
et4.setText("");
et5.setText("");
et6.setText("");
/*lanzamos una notificacion toast para saber que se cargaron los datos*/
Toast.makeText(this, "se cargaron los datos ", Toast.LENGTH_SHORT).show();
}
//metodo consultar la base de datos
public void consulta(View v) {
/*instanciamos la variables de dbhelper y
le pasamos el contexto , nombre de base de datos*/
admin = new BDHelper(this, "instituto", null, 1);
/*abrimos la base de datos pora escritura*/
db = admin.getWritableDatabase();
/*creamos una variables string y lo
inicializamos con los datos ingresados en edittext*/
String codigo = et1.getText().toString();
/*iniciamos la query en el cursor y indicamos el codigo digitado*/fila = db.rawQuery("select curso,nota1,nota2,nota3,
promedio from registro where codigo=" + codigo, null);
/*hacemos un if si hay datos que lea los datos del primer codigo*/
if (fila.moveToFirst()) {
et2.setText(fila.getString(0));
et3.setText(fila.getString(1));
et4.setText(fila.getString(2));
et5.setText(fila.getString(3));
et6.setText(fila.getString(4));
}
else
/*si no existe entonces lanzara un toast*/
Toast.makeText(this, "no existe un registro con dicho codigo",
Toast.LENGTH_SHORT).show();
/*cerramos la base de datos*/
db.close();
}
//metodo eliminar
public void baja(View v) {
/*instanciamos la variables de dbhelper y
le pasamos el contexto , nombre de base de datos*/
admin = new BDHelper(this, "instituto", null, 1);
/*abrimos la base de datos pora escritura*/
db = admin.getWritableDatabase();
/*creamos una variables string y lo
inicializamos con los datos ingresados en edittext*/
String codigo = et1.getText().toString();
/*variable int pasamos el metodo delete de la tabla registro el codigo que edittext*/
int cant = db.delete("registro", "codigo=" + codigo, null);
/*cerramos la DB*/
db.close();
/*listamos los datos de la base de datos*/
ArrayList array_list = admin.getAllRegistros();
ArrayAdapter<String> arrayAdapter=new ArrayAdapter<String>(
this,android.R.layout.simple_list_item_1, array_list);
/*pasamos los datos a la listview para lo muestre*/
listaView.setAdapter(arrayAdapter);
/*limpiamos las cajas de texto*/
et1.setText("");
et2.setText("");
et3.setText("");
et4.setText("");
et5.setText("");
et6.setText("");
/*si cante es igual que unos entonces*/
if (cant == 1)
/*lanzamos un toast que notifique se elimino*/
Toast.makeText(this, "se borr贸 el registro con dicho documento",
Toast.LENGTH_SHORT).show();
else
/*de lo contrario lanzara que esos datos no existen*/
Toast.makeText(this, "no existe un registro con dicho documento",
Toast.LENGTH_SHORT).show();
}
//metodo modificar
public void modificacion(View v) {
/*instanciamos la variables de dbhelper y
le pasamos el contexto , nombre de base de datos*/
admin = new BDHelper(this, "instituto", null, 1);
/*abrimos la base de datos pora escritura*/
db = admin.getWritableDatabase();
/*capturamos los datos de los edittext*/
String codigo = et1.getText().toString();
String curso = et2.getText().toString();
String nota1 = et3.getText().toString();
String nota2 = et4.getText().toString();
String nota3 = et5.getText().toString();
//calculamos el promedio
int promedioope=0;
promedioope=Integer.parseInt(et3.getText().toString());
promedioope=promedioope+Integer.parseInt(et4.getText().toString());
promedioope=promedioope+Integer.parseInt(et5.getText().toString());
promedioope=promedioope/3;
//covertir a string
String promedio=String.valueOf(promedioope);
ContentValues registro = new ContentValues();
registro.put("codigo", codigo);
registro.put("curso", curso);
registro.put("nota1", nota1);
registro.put("nota2", nota2);
registro.put("nota3", nota3);
registro.put("promedio", promedio);
/*lanzamos el metodo update con el query para que actualice segun el id o codigo*/
int cant = db.update("registro", registro, "codigo=" + codigo, null);
/*cerramos la BD*/
db.close();
/*listamos los datos de la base de
datos para mostrarlo en el listview*/
ArrayList array_list = admin.getAllRegistros();
ArrayAdapter<String> arrayAdapter=new ArrayAdapter<String>(
this,android.R.layout.simple_list_item_1, array_list);
/*mostramos los datos de la db*/
listaView.setAdapter(arrayAdapter);
/*limpiamos la caja de texto*/
et1.setText("");
et2.setText("");
et3.setText("");
et4.setText("");
et5.setText("");
et6.setText("");
/*si cante es igual que unos entonces*/
if (cant == 1)
/*si se cumple lka sentencia entonces muestra el toast*/
Toast.makeText(this,"se modificaron los datos",Toast.LENGTH_SHORT)
.show();
else
/*de lo contrario muestra el siguiente toast*/
Toast.makeText(this,"no existe un registro con dicho documento",
Toast.LENGTH_SHORT).show();
}
}
Ejecutamos el proyecto en el emulador
GUARDAR |
CONSULTA |
MODIFICAR |
ELIMINAR |
ABRE EL PROYECTO DIRECTAMENTE DESDE GITHUB
https://github.com/raul1995/RegistroNotaBD.git
Apoyen suscribi茅ndose a mi canal de Youtube canal " EL INFORMATICO IBERO" , Compartan el contenido del Blog, si les gusto el contenido del blog y del canal suscribanse es Gratis!!
No hay comentarios.:
Publicar un comentario