Portafolio Unidad 3
Ventajas de SQLite
- No requiere una previa instalación sino que viene incluida y puede ser usada cuando sea necesaria sin necesidad de externos.
- Es muy ligero y se integra con la propia aplicación, ya que la base de datos se almacena en un único archivo y su peso es muy reducido en comparación con otras opciones disponibles.
- Es muy sencillo de utilizar, ya que no utiliza una comunicacion cliente-servidor para las consultas, ya que se comunica con un archivo que es la base de datos y que puede ser autogenerado por la propia aplicacion.
Gestión de Información por medio de Bases de Datos
El surgimiento de la tecnología ha hecho posible la creación de nuevas herramientas que facilitan las tareas en una organización. Uno de ellos son las bases de datos, ya que son una buena opción para almacenar datos los cuales los usuarios desean modificar de forma proactiva, también para almacenar contraseñas y formularios, para las aplicaciones de hoy en día estas funcionalidades solo se encuentran en las bases de datos, ya que gestionar la información de otras formas no es tan eficiente como organizarla en una base de datos confiable, y adicional Android se conecta de forma "sencilla" a estas bases de datos permitiendo asi poder crear aplicaciones aprovechando estas funcionalidades.
Las principales utilidades que ofrece son las siguientes:
- Agrupar y almacenar todos los datos de la empresa en un único lugar.
- Evitar la redundancia y mejorar la organización de nuestra actividad.
- Conectar los datos de operaciones, facturación e interacciones con cada cliente o potencial.
- Activar campañas de marketing o tareas.
Conexión de Bases de Datos en Dispositivos Móviles
Creación de una Base de Datos
package com.example.hotel;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import androidx.annotation.Nullable;
import com.example.hotel.Utilidades.utilidades;
public class Conexionbd extends SQLiteOpenHelper {
public Conexionbd(@Nullable Context context,@Nullable String name,@Nullable SQLiteDatabase.CursorFactory factory,int version){
super(context,name,factory,version);
}
@Override
public void onCreate(SQLiteDatabase BDHotel) {
BDHotel.execSQL(utilidades.CrearTblReserva);//**
BDHotel.execSQL(utilidades.CrearTblRegistro);//***
}
@Override
public void onUpgrade(SQLiteDatabase BDHotel, int i, int i1) {
//se le indica que si la tabla existe la borre y cree una nueva
BDHotel.execSQL("DROP TABLE IF EXISTS "+ utilidades.tblReserva);
BDHotel.execSQL("DROP TABLE IF EXISTS "+ utilidades.tblRegistro);
onCreate(BDHotel);
}
}
Creación de Tablas
package com.example.hotel.Utilidades;
import java.util.Date;
public class utilidades {
//constantes de los campos de la tabla Clientes
public static final String tblRegistro = "Registro";//capturar los datos del formulario
public static final String campoUsuario = "usuario";
public static final String campoContraseña = "contraseña";
//se crea la constante que va a guardar el string para crear la tabla Clientes
public static final String CrearTblRegistro = "CREATE TABLE " + tblRegistro +
" (" + campoUsuario + " INTEGER PRIMARY KEY, " + campoContraseña
+ " TEXT)";
//constantes de los campos de la tabla Productos
public static final String tblReserva = "Reserva";
public static final String campoCodigo = "codigo";
public static final String campoHotel="hotel";
public static final String campoPersonas = "personas";
public static final String campoDias = "dias";
public static final String campoFecha = "fecha";
//se crea la constante que va a guardar el string para crear la tabla productos
public static final String CrearTblReserva = "CREATE TABLE " + tblReserva +
" (" + campoCodigo + " INTEGER PRIMARY KEY , "+ campoHotel +
" TEXT, "+ campoPersonas +
" INTEGER, " + campoDias + " INTEGER, " + campoFecha + " TEXT)";
}
Creación de Relaciones entre Tablas
El motor SQLite tiene un buen soporte para las relaciones entre las tablas, es decir, soporta las claves foráneas especificando relaciones de una tabla con otra.
Una clave foránea se indica al final de la creación de una tabla con:
FOREIGN KEY(clave_foranea) REFERENCES otra_tabla(campo_de_esa_tabla)
create table if not exists producto( | |
id integer primary key autoincrement, | |
nombre text not null | |
); |
Para crear la relación vamos a crear una tabla llamada Cliente, porque un Producto pertenece a un grupo. Así que la definición queda de la siguiente manera:
create table if not exists Cliente( | |||||||||||
|
Logueo y Contraseña de Usuario
package com.example.hotel;
import androidx.appcompat.app.AppCompatActivity;
import android.content.ContentValues;
import android.content.Intent;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;
import com.example.hotel.Utilidades.utilidades;
public class Registo_Data extends AppCompatActivity {
String Title="Registro de Usuarios";
EditText etUsername,etPassword;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_registo_data);
this.setTitle(Title);
etUsername=(EditText) findViewById(R.id.etUsername);
etPassword=(EditText) findViewById(R.id.etPassword);
}
public void click(View view) {
switch (view.getId()) {
case R.id.btnsave:
RegistrarUsuario();
break;
case R.id.btnback:
Intent VistaPrincipal = new Intent(this, menu.class);
startActivity(VistaPrincipal);
break;
}
}
private void RegistrarUsuario() {
long result = 0;
Conexionbd conexion = new Conexionbd(this, "BDHotel", null, 1);
SQLiteDatabase BDHotel = conexion.getWritableDatabase();
String Username = etUsername.getText().toString();
String Passuser = etPassword.getText().toString();
ContentValues values = new ContentValues();
values.put(utilidades.campoUsuario, Username);
values.put(utilidades.campoContraseña, Passuser);
if(!Username .isEmpty() && !Passuser.isEmpty()){
BDHotel.insert("tblRegistro", null, values);
BDHotel.close();
if (result > 0) {
//se pone un mensaje de éxito
Toast.makeText(this, "Usuario Almacenado Exitosamente", Toast.LENGTH_LONG).show();
} else {
Toast.makeText(this, "No se insertaron datos", Toast.LENGTH_LONG).show();
}
}
else {
Toast.makeText(this,"Ingrese Correctamente los datos", Toast.LENGTH_LONG).show();
}
Intent intent=new Intent(this,menu.class);
startActivity(intent);
}
public void salida(View view) {
finishAffinity();
}
Implementación de Métodos
Para realizar el CRUD (Agregar, buscar, actualizar y borrar) en Android Studio, enlazado con SQLITE, debemos de realizar el siguiente código:
1. Para agregar o insertar datos, se debe de utilizar el método SQLiteDatabase.insert(), cuya funcionalidad es añadir filas a nuestras tablas. Los pasos para utilizarlo es:
- Crea un objeto del tipo ContentValues (el cual permite almacenar las columnas del registro en pares clave-valor)
- Añadir los pares con el método put()
- Invoca a insert() a través de la instancia de la base de datos.
Ejemplo:
2. Para buscar datos u obtener los registros de nuestra tabla, usaremos el método query(), además de pasarle los datos que necesitamos consultar en la base de datos
Ejemplo:
Reflexión
Despues de finalizar las tareas solicitadas en cada uno de los Portafolios la sensacion de haber aprendido algo nuevo mientras se realizaban estos portafolios ha sido grata, ya que nos ah permitido ampliar nuestros horizontes respecto a lo que es la programación de dispositivos móviles y el como podemos sacar provecho de este aprendizaje e implementarlo a nuestro currículum como profesionales en el mundo del Desarrollo de Software.
Comentarios
Publicar un comentario