Proyecto Final Poo JAVA
Generaremos una bitácora de códigos para el proyecto final de poo
Este debe contar con los siguientes puntos.
- Entregar el proyecto con (Clases, Formularios, Imágenes, Script de Base de Datos)
- Control de usuario en el acceso (Validado desde una Base de datos, es decir hacer un LOGIN)
- Contener un CRUD
- 1. Tener una Clase Conexion.java que contenga métodos que nos permita entrar a una base de datos
- 2. Tener un método para CREAR registros (de ahí la C de Create), igual se le dice, Guardar, Grabar, Insertar, etc.
- 3. Tener un método para LEER registros (de ahí la R de Read)
- 4. Tener un método para LEER (de ahí la R de Read)
- 5. Tener un método para ACTUALIZAR registros (de ahí la U de Update)
- 6. Tener un método para ELIMINAR registros (de ahí la D de Delete)
- Contener un «jComboBox»
- Búsqueda de registros
Entregar el proyecto con (Clases, Formularios, Imágenes, Script de Base de Datos)
Esto se refiere a que debes entregar un proyecto terminado con todas sus respectivas carpetas y archivos, para que a la hora de que otra persona lo abra lo pueda utilizar.

Control de usuario en el acceso (Validado desde una Base de datos, es decir hacer un LOGIN)
Aquí se debe crear un login de acceso a tu app de JAVA, para ellos deberás crear un formulario que te permita ingresar un nombre de usuario y una contraseña y en el botón ingresar deberás escribir el código que te dejo más abajo

Este es el código necesario para hacer un Login básico en JAVA, este código tiene que ir en el botón ingresar.
private void btnIngresarActionPerformed(java.awt.event.ActionEvent evt) {
//1) Capturar los datos
String user = txtUser.getText();
String pass = txtPass.getText();
//2) Instanciar la clase Conexion.java
Conexion objConexion = new Conexion();
//3) Usamos el método para establecer la conexión
objConexion.estableceConexion();
//4) Generamos la consulta SQL
String SQL="SELECT * FROM Usuarios WHERE nombresUsuario='"+user+"' AND passUsuario='"+pass+"'";
//5) Guardamos el resultado de la consulta
objConexion.resultado=objConexion.consultas(SQL);
try {
if(objConexion.resultado.next()){
this.setVisible(false);
frmDashboard objDashboard = new frmDashboard();
objDashboard.setVisible(true);
System.out.println("HOLA ME CONECTÉ");
//Dashboard MOSTRAR con LOGIN
objDashboard.imgPerfilMenu.setVisible(true);
objDashboard.lblnombreUsuarioMenu.setVisible(true);
objDashboard.btnCalendario.setVisible(true);
objDashboard.btnClientes.setVisible(true);
objDashboard.btnServicios.setVisible(true);
objDashboard.btnTecnicos.setVisible(true);
objDashboard.btnUsuarios.setVisible(true);
//Dashboard OCULTAR con LOGIN
objDashboard.lblMensajeMenu1.setVisible(false);
objDashboard.lblMensajeMenu2.setVisible(false);
objDashboard.lblMensajeMenu3.setVisible(false);
}else{
JOptionPane.showMessageDialog(this, "Usuario o password incorrecta", "error", JOptionPane.ERROR_MESSAGE);
}
}catch (SQLException ex){
JOptionPane.showMessageDialog(null, ex.getMessage());
}
}
Contener un CRUD
Para crear un CRUD, necesitamos contemplar varias cosas.
1. Tener una Clase Conexion.java que contenga métodos que nos permita entrar a una base de datos
package clases;
import java.sql.Connection; //Con esto agrego la librer?a conexi?n al proyecto
import java.sql.Statement;
import java.sql.ResultSet;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
public class Conexion {
//Atributos para usar durante todo el código
public Connection conexion = null; //tipo conexion nulo al principio
public Statement sentencia; //Para crear sentencias SQL
public ResultSet resultado; //Guarda lo que viene de vuelta
String bd = "fipe_manager"; //Nombre de la base datos
String URL = "jdbc:mysql://localhost:3309" + "/" + bd; //Cadena de conexión
String usuario = "root";
String pass = "1234";
//Método que permite conectarnos a la base de datos
//Es una clase estandar para conectarnos a cualquier base de dato SQL
public Connection estableceConexion() {
try {
Class.forName("com.mysql.cj.jdbc.Driver"); //Ruta donde estan guardadas las clases apra conectarnos
conexion = DriverManager.getConnection(URL, usuario, pass); //Recibe tres parametros
System.out.println("Me conecté"); //Si todo esto funciona menciona que se conectó
} catch (Exception ex) {
Logger.getLogger(Conexion.class.getName()).log(Level.SEVERE, null, ex);
System.out.println("No me puedo conectar " + ex);
}
return conexion;
}
2. Tener un método para CREAR registros (de ahí la C de Create), igual se le dice, Guardar, Grabar, Insertar, etc.
Este método crear consta de dos partes
i. El método que se debe agregar en la Clase Conexion.java
// Método Agregar en la clase Conexion.java
public int agregar(String sql) {
int datos = 0;
try {
sentencia = conexion.createStatement();
datos = sentencia.executeUpdate(sql);
} catch (SQLException ex) {
Logger.getLogger(Conexion.class.getName()).log(Level.SEVERE, null, ex);
}
return datos;
}
ii. Capturar los datos en el botón Guardar e instanciar el metodo agregar para lograr guardar los datos
// AGREGAR REGISTRO (Este código va en el botón guardar)
private void btnGrabarActionPerformed(java.awt.event.ActionEvent evt) {
String rut = txtRut.getText();
String nombres = txtNombres.getText();
String apellidos = txtApellidos.getText();
String edad = txtEdad.getText();
String ciudad = cmbCiudad.getSelectedItem().toString();
String sexo;
if (rdoMasculino.isSelected()) {
sexo = "Masculino";
} else {
sexo = "Femenino";
}
if ((rut.length() == 0) || (nombres.length() == 0 || (apellidos.length() == 0) || (edad.length() == 0) || (ciudad.length() == 0))) {
JOptionPane.showMessageDialog(null, "Faltan Datos");
} else {
objetoConexion.estableceConexion();
String sqlAgrega = "insert into Alumnos (rut, nombres, apellidos, edad, ciudad, sexo) values ('" + rut + "','" + nombres + "','" + apellidos + "','" + edad + "','" + ciudad + "','" + sexo + "')";
int regAgreegado = objetoConexion.agregar(sqlAgrega);
JOptionPane.showMessageDialog(null, regAgreegado + " Alumno ingresado exitosamente");
}
mostrarDatos();
objetoConexion.Desconectar();
}
3. Tener un método para LEER registros (de ahí la R de Read)
Para leer los registros de la base de datos, podemos cargar estos en una «jTable» de JAVA, y teniendo esto debemos hacer un método para configurar los campos de dicha tabla (según los campos de la base de datos) para posteriormente recorrer nuestra tabla en la base de datos he ir cargando los datos en la Tabla del formulario de java
// CARGAR REGISTROS DESDE LA BASE DE DATOS
public void mostrarDatos() {
// Creamos nuevo modelo de la tabla
DefaultTableModel NuevoObjModelo = new DefaultTableModel();
// Generamos la cabecera de cada columna
NuevoObjModelo.addColumn("RUT");
NuevoObjModelo.addColumn("NOMBRES");
NuevoObjModelo.addColumn("APELLIDOS");
NuevoObjModelo.addColumn("EDAD");
NuevoObjModelo.addColumn("CIUDAD");
NuevoObjModelo.addColumn("SEXO");
// Agregamos el nuevo modelo a la tabla creada
tblListado.setModel(NuevoObjModelo);
// creamos arreglo para guardar los datos (son 5 campos)
String[] datosBD = new String[6];
try {
Statement leerDatos = conect.createStatement(); //Preparamos la sentencia
ResultSet resultado = leerDatos.executeQuery("SELECT * FROM alumnos"); //ejecutamos la sentencia
int cantRegistros = 0;
while (resultado.next()) { // mientras exista información
datosBD[0] = resultado.getString(1); // asigno a cada posicion del arreglo los datos obtenidos x columna
datosBD[1] = resultado.getString(2);
datosBD[2] = resultado.getString(3);
datosBD[3] = resultado.getString(4);
datosBD[4] = resultado.getString(5);
datosBD[5] = resultado.getString(6);
// asigno al modelo cada registro por cada vuelta del ciclo while
NuevoObjModelo.addRow(datosBD);
cantRegistros = cantRegistros + 1;
}
// Asigno el nuevo modelo CON DATOS al nueva tabla
tblListado.setModel(NuevoObjModelo);
lblCantRegistros.setText("Total de Registros: " + cantRegistros);
} catch (SQLException excepcionSQL) {
JOptionPane.showMessageDialog(null, "Error en la consulta " + excepcionSQL);
}
}