lunes, 16 de mayo de 2022

Implementación de métodos

Implementación de métodos

Tablas:

Registro Cliente:

package com.example.bdferreteriacamilo;
import androidx.appcompat.app.AppCompatActivity;
import android.content.ContentValues;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;
import android.content.Intent;
public class RegistroCliente extends AppCompatActivity
{
private EditText Cod_cli, Nom_cli, Dir_cli, Tel_cli;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_registro_cliente);
Cod_cli = (EditText) findViewById(R.id.CCcli);
Nom_cli = (EditText) findViewById(R.id.NOcli);
Dir_cli = (EditText) findViewById(R.id.DIcli);
Tel_cli = (EditText) findViewById(R.id.TEcli);
}
public void RegistrarCliente(View view)
{
AdminBD admin = new AdminBD(this,"BaseDatos", null, 1);
SQLiteDatabase BaseDatosCL = admin.getWritableDatabase();
String Cedula = Cod_cli.getText().toString();
String Nombre = Nom_cli.getText().toString();
String Direccion = Dir_cli.getText().toString();
String Telefono = Tel_cli.getText().toString();
if(!Cedula.isEmpty() && !Nombre.isEmpty() && !Direccion.isEmpty() && !Telefono.isEmpty()) {
ContentValues RegistroCliente = new ContentValues();
RegistroCliente.put("cedula", Cedula);
RegistroCliente.put("nombre", Nombre);
RegistroCliente.put("direccion", Direccion);
RegistroCliente.put("telefono", Telefono);
BaseDatosCL.insert("CLIENTE", null, RegistroCliente);
BaseDatosCL.close();
Cod_cli.setText("");
Nom_cli.setText("");
Dir_cli.setText("");
Tel_cli.setText("");
Toast.makeText(this,"DATOS DEL CLIENTE INGRESADOS", Toast.LENGTH_LONG).show();
Intent intent = new Intent(RegistroCliente.this,RegistroPedido.class);
startActivity(intent);
}
else
{
Toast.makeText(this,"INGRESAR CORRECTAMENTE LOS DATOS DEL CLIENTE", Toast.LENGTH_LONG).show();
}
}
DML Select:

public void GenerarConsultaCliente(View view)
{
AdminBD admin = new AdminBD(this, "BaseDatos", null, 1);
SQLiteDatabase BDCLIENTE = admin.getWritableDatabase();
String CodigoCliente= cod_cli.getText().toString();

if (!CodigoCliente.isEmpty()) {
Cursor FilaCliente = BDCLIENTE.rawQuery("Select nombre,direccion,telefono FROM CLIENTE where cedula=" + CodigoCliente, null);

if (FilaCliente.moveToFirst()) {
nom_cli.setText(FilaCliente.getString(0));
dir_cli.setText(FilaCliente.getString(1));
tel_cli.setText(FilaCliente.getString(2));
BDCLIENTE.close();

}
else
{
Toast.makeText(this, "NO EXISTE LOS DATOS", Toast.LENGTH_LONG).show();
BDCLIENTE.close();
}
}
else
{
Toast.makeText(this, "DEBES INTRODUCIR LA CEDULA", Toast.LENGTH_LONG).show();
}
}
DML Delete:

public void EliminarDatosCliente(View view)
{
AdminBD admin = new AdminBD(this, "BaseDatos", null, 1);
SQLiteDatabase BDELIMINARCLI = admin.getWritableDatabase();
String CodigoEliminarCli = cod_cli.getText().toString();
if((!CodigoEliminarCli.isEmpty()))
{
int ELIMINARCLIENTE = BDELIMINARCLI.delete("CLIENTE", "cedula=" + CodigoEliminarCli,null);
BDELIMINARCLI.close();
nom_cli.setText("");
dir_cli.setText("");
tel_cli.setText("");

if(ELIMINARCLIENTE == 1)
{
Toast.makeText(this, "DATOS ELIMINADOS CORRECTAMENTE", Toast.LENGTH_LONG).show();
}
else
{
Toast.makeText(this, "LOS DATOS NO EXISTE", Toast.LENGTH_LONG).show();
}
}
else
{
Toast.makeText(this, "DEBES INTRODUCIR LA CEDULA", Toast.LENGTH_SHORT).show();
}
}
DML UPDATED

public void ActualizarDatosCliente(View view)
{
AdminBD admin = new AdminBD(this, "BaseDatos", null, 1);
SQLiteDatabase BDACTUALIZARCLI = admin.getWritableDatabase();
String CedulaCA = cod_cli.getText().toString();
String NombreCA = nom_cli.getText().toString();
String DireccionCA = dir_cli.getText().toString();
String TelefonoCA = tel_cli.getText().toString();

if (!CedulaCA.isEmpty() && !NombreCA.isEmpty() && DireccionCA.isEmpty() && TelefonoCA.isEmpty())
{
ContentValues actualizar = new ContentValues();
actualizar.put("cedula", CedulaCA);
actualizar.put("nombre", NombreCA);
actualizar.put("direccion", DireccionCA);
actualizar.put("telefono", TelefonoCA);

int ACTUALIZARCLIENTE = BDACTUALIZARCLI.update("CLIENTE", actualizar,"cedula="+ CedulaCA,null);
BDACTUALIZARCLI.close();

if(ACTUALIZARCLIENTE == 1)
{
Toast.makeText(this, "DATOS DEL CLIENTE ACTUALIZADOS", Toast.LENGTH_SHORT).show();
}
else
{
Toast.makeText(this, "DATOS DEL CLIENTE NO ACTUALIZADOS", Toast.LENGTH_SHORT).show();
}
}
else
{
Toast.makeText(this, "DEBES LLENAR TODOS LOS CAMPOS DEL CLIENTE", Toast.LENGTH_SHORT).show();
}
}


Logueo y contraseña de usuario

 Logueo y contraseña de usuario

Para el Login se utilizo una condición sencilla donde se instanciaron los dos EditText y se les condiciono usando .Equals para condicionar que si las dos variables eran verdaderas entonces permitiera ingresar al otro Activity  en caso que no fuera verdadera entonces el sistema sacaba un mensajito diciendo Login incorrecto, se hizo uso del SharedPreferences para recuperar los datos almacenados de la contraseña y así no tener que teclearla nuevamente.



package com.example.base_datos_sql1;


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.EditText;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

private EditText etc,etn,ett;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

etc=(EditText)findViewById(R.id.etcedula);
etn=(EditText)findViewById(R.id.etnombre);
ett=(EditText)findViewById(R.id.ettelefono);

}

//REGISTRO Y LOGUEO
public void registrar (View view){
//Abrir base de datos objeto para referir a la base de datos
AdminBD admin=new AdminBD(this,"BaseDatos",null,1);
//se abre la base de datos para escritura y lectura
SQLiteDatabase BaseDatos = admin.getWritableDatabase();
//almacena la informacion digitada por el usuario
String cedula =etc.getText().toString();
String nombre =etn.getText().toString();
String telefono =ett.getText().toString();

Creación de relaciones entre tablas

Creación de relaciones entre tablas


Modelo Entidad Relación F1:


Modelo Entidad Relación F2 (NORMALIZACIÓN):


Modelo Entidad Relación F3 
(NORMALIZACIÓN):






 

Creación de Tablas

Creación de Tablas

AdminBD admin=new AdminBD(this,"BaseDatos",null,1);
//se abre la base de datos para escritura y lectura
SQLiteDatabase BaseDatos = admin.getWritableDatabase();
//almacena la informacion digitada por el usuario
String cedula =etc.getText().toString();
String nombre =etn.getText().toString();
String telefono =ett.getText().toString();
//validacion
if (!cedula.isEmpty() && !nombre.isEmpty() && !telefono.isEmpty()){
//crear variable contentvalue para almacenar la informacion
ContentValues registro = new ContentValues();

//almacene los datos digitados
registro.put("cedula",cedula);
registro.put("nombre",nombre);
registro.put("telefono",telefono);

//insertar informacion en la tabla
BaseDatos.insert("usuario",null,registro);
//cerrar base de datos
BaseDatos.close();

//limpiar campos
ett.setText("");
etn.setText("");
etc.setText("");

Toast.makeText(this,"Registro Ingresado y Almacenado Correctamente",Toast.LENGTH_LONG).show();
}
else {
Toast.makeText(this,"Ingrese Correctamente todos los datos",Toast.LENGTH_LONG).show();
}


Creación de una base de datos

Creación de una base de datos

Diseño Interfaz:



AdminBD.java 

package com.example.conexiondeunabasededatos;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import androidx.annotation.Nullable;

public class AdminBD extends SQLiteOpenHelper {

public AdminBD (@Nullable Context context, @Nullable String name, @Nullable SQLiteDatabase.CursorFactory factory, int version) {
super(context, name, factory, version);
}

@Override
public void onCreate(SQLiteDatabase BD)
{
BD.execSQL("create table Datos (ID int primary key, Nombre text, Telefono int) ");


}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
{


}
}
MainActivity.java

package com.example.conexiondeunabasededatos;

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.EditText;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

private EditText EditId,EditNombre,EditTelefono;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
EditId = (EditText) findViewById(R.id.EditId);
EditNombre = (EditText) findViewById(R.id.EditNombre);
EditTelefono= (EditText) findViewById(R.id.EditTelefono);
}
public void Guardar(View view) {
AdminBD admin = new AdminBD(this, "BD", null, 1);
SQLiteDatabase BaseDatos = admin.getWritableDatabase();
String ID = EditId.getText().toString();
String Nombre = EditNombre.getText().toString();
String Telefono = EditTelefono.getText().toString();

if (!ID.isEmpty() && !Nombre.isEmpty() && !Telefono.isEmpty()) {
ContentValues Registro = new ContentValues();
Registro.put("ID", ID);
Registro.put("Nombre", Nombre);
Registro.put("Telefono", Telefono);
BaseDatos.insert("Datos", null, Registro);
BaseDatos.close();
EditId.setText("");
EditNombre.setText("");
EditTelefono.setText("");
Toast.makeText(this, "REGISTRO EXITOSO", Toast.LENGTH_LONG).show();
} else {
Toast.makeText(this, "INGRESAR CORRECTAMENTE LOS DATOS ", Toast.LENGTH_LONG).show();
}
}

public void Buscar(View view) {
AdminBD admin = new AdminBD(this, "BD", null, 1);
SQLiteDatabase BD1 = admin.getWritableDatabase();
String ID1 = EditId.getText().toString();


if (!ID1.isEmpty()) {
Cursor fila = BD1.rawQuery("Select Nombre, Telefono from Datos where ID =" + ID1, null);
if (fila.moveToFirst()) {

EditNombre.setText(fila.getString(0));
EditTelefono.setText(fila.getString(1));
BD1.close();
} else {
Toast.makeText(this, "NO EXISTE EL USUARIO", Toast.LENGTH_LONG).show();
}
}
}
}

Conexión de bases de datos en dispositivos móviles

Conexión de bases de datos en dispositivos móviles

Para la conexión de una base de datos con Java, primero se deberá dirigir a las carpetas que se ubican a mano izquierda de Android Studio, posteriormente se le dará clic derecho a la que aparece debajo de la carpeta Java como una subcarpeta.



En este caso se llama "com.example.conexiondeunabasededatos"

Luego se le da clic derecho y saldrá un menú, en la opción New y se dará clic en Java Class eso permitirá crear una clase, a la que se le asignará un nombre cualquiera.



En este caso tiene el nombre de "AdminBD"

Ahora se procede a utilizar las extensiones necesarias para  la conexión de SQLITE entre ellas:
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import androidx.annotation.Nullable;
  • Luego se procede a crear dos métodos dentro de la clase "AdminBD" con la extensión "SQLiteOpenHelper"
  • Luego se conecta las referencias Nullable  context, name, factory y version  y se le asigna constructores de tipo super operando dentro de la clase "public  AdminBD"
  • Finalmente se procede a crear dos métodos de tipo "public Void  OnCreate"  y "onUpgrade"  asignandoles el nombre de la base de datos 
De esta manera ya esta realizada la conexión con la base de datos SQLITE

package com.example.conexiondeunabasededatos;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import androidx.annotation.Nullable;

public class AdminBD extends SQLiteOpenHelper {

public AdminBD (@Nullable Context context, @Nullable String name, @Nullable SQLiteDatabase.CursorFactory factory, int version) {
super(context, name, factory, version);
}

@Override
public void onCreate(SQLiteDatabase BD)
{
BD.execSQL("create table Datos (ID int primary key, Nombre text, Telefono int) ");


}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
{


}
}

Gestión de información por medio de bases de datos

Gestión de información por medio de bases de datos

Las bases de datos 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 bases de datos, gestionar la información de otras formas no es tan eficiente como organizarla en una base de datos confiable, y Android se conecta de forma "sencilla" a estas bases de datos y permite 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.

Si una Base de Datos se gestiona adecuadamente, la organización obtendrá diferentes ventajas. Aumentará su eficacia, habrá trabajos que se realicen con mayor rapidez y agilidad debido a la simplificación de los mismos, podremos mejorar la seguridad de los datos que almacenamos, y con todos estos factores, maximizaremos los tiempos y por tanto, se producirá una mejora en la productividad.