diff --git "a/Metodolog\303\255a/Java/CLASE 11 PROGRAMACION III.sql" "b/Metodolog\303\255a/Java/CLASE 11 PROGRAMACION III.sql" new file mode 100644 index 0000000..7fbbe74 --- /dev/null +++ "b/Metodolog\303\255a/Java/CLASE 11 PROGRAMACION III.sql" @@ -0,0 +1,27 @@ +create database estudiantes; +use estudiantes; +create table estudiantes2022( +idestudiantes2022 int auto_increment primary key, +nombre varchar(50), +apellido varchar(50), +telefono varchar (12), +email varchar (80) +); + +/*Comenzamos con CRUD: create(crear), read(leer), update(actualizar), delete(eliminar)*/ + +-- Listar los estudiantes (read) +SELECT * FROM estudiantes2022; + +-- Insertar estudiante (create) +INSERT INTO estudiantes2022 (nombre, apellido, telefono, email) VALUES('Juan', 'Perez', '12233333', 'jperez@mail.com'); + +-- Modificar estudiante (update) +UPDATE estudiantes2022 SET nombre='Juan Carlos', apellido='Garcia' WHERE idestudiantes2022=1; + +-- Eliminar registro (Delete) +DELETE FROM estudiantes2022 WHERE idestudiantes2022=3; + +-- Para modificar el idestudiantes2022 y comience en 1 +ALTER TABLE estudiantes2022 auto_increment = 1; + diff --git "a/Metodolog\303\255a/Java/SistemaEstudiantes/.gitignore" "b/Metodolog\303\255a/Java/SistemaEstudiantes/.gitignore" new file mode 100644 index 0000000..5ff6309 --- /dev/null +++ "b/Metodolog\303\255a/Java/SistemaEstudiantes/.gitignore" @@ -0,0 +1,38 @@ +target/ +!.mvn/wrapper/maven-wrapper.jar +!**/src/main/**/target/ +!**/src/test/**/target/ + +### IntelliJ IDEA ### +.idea/modules.xml +.idea/jarRepositories.xml +.idea/compiler.xml +.idea/libraries/ +*.iws +*.iml +*.ipr + +### Eclipse ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ +build/ +!**/src/main/**/build/ +!**/src/test/**/build/ + +### VS Code ### +.vscode/ + +### Mac OS ### +.DS_Store \ No newline at end of file diff --git "a/Metodolog\303\255a/Java/SistemaEstudiantes/.idea/.gitignore" "b/Metodolog\303\255a/Java/SistemaEstudiantes/.idea/.gitignore" new file mode 100644 index 0000000..13566b8 --- /dev/null +++ "b/Metodolog\303\255a/Java/SistemaEstudiantes/.idea/.gitignore" @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git "a/Metodolog\303\255a/Java/SistemaEstudiantes/.idea/encodings.xml" "b/Metodolog\303\255a/Java/SistemaEstudiantes/.idea/encodings.xml" new file mode 100644 index 0000000..aa00ffa --- /dev/null +++ "b/Metodolog\303\255a/Java/SistemaEstudiantes/.idea/encodings.xml" @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git "a/Metodolog\303\255a/Java/SistemaEstudiantes/.idea/misc.xml" "b/Metodolog\303\255a/Java/SistemaEstudiantes/.idea/misc.xml" new file mode 100644 index 0000000..0a13117 --- /dev/null +++ "b/Metodolog\303\255a/Java/SistemaEstudiantes/.idea/misc.xml" @@ -0,0 +1,14 @@ + + + + + + + + + + \ No newline at end of file diff --git "a/Metodolog\303\255a/Java/SistemaEstudiantes/.idea/uiDesigner.xml" "b/Metodolog\303\255a/Java/SistemaEstudiantes/.idea/uiDesigner.xml" new file mode 100644 index 0000000..2b63946 --- /dev/null +++ "b/Metodolog\303\255a/Java/SistemaEstudiantes/.idea/uiDesigner.xml" @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git "a/Metodolog\303\255a/Java/SistemaEstudiantes/.idea/vcs.xml" "b/Metodolog\303\255a/Java/SistemaEstudiantes/.idea/vcs.xml" new file mode 100644 index 0000000..c2365ab --- /dev/null +++ "b/Metodolog\303\255a/Java/SistemaEstudiantes/.idea/vcs.xml" @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git "a/Metodolog\303\255a/Java/SistemaEstudiantes/pom.xml" "b/Metodolog\303\255a/Java/SistemaEstudiantes/pom.xml" new file mode 100644 index 0000000..18bdc23 --- /dev/null +++ "b/Metodolog\303\255a/Java/SistemaEstudiantes/pom.xml" @@ -0,0 +1,26 @@ + + + 4.0.0 + + UTN + estudiante + 1.0-SNAPSHOT + + + + + com.mysql + mysql-connector-j + 8.0.33 + + + + + 20 + 20 + UTF-8 + + + \ No newline at end of file diff --git "a/Metodolog\303\255a/Java/SistemaEstudiantes/src/main/java/UTN/conexion/Conexion.java" "b/Metodolog\303\255a/Java/SistemaEstudiantes/src/main/java/UTN/conexion/Conexion.java" new file mode 100644 index 0000000..cfc27b5 --- /dev/null +++ "b/Metodolog\303\255a/Java/SistemaEstudiantes/src/main/java/UTN/conexion/Conexion.java" @@ -0,0 +1,27 @@ +package UTN.conexion; + + +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.SQLException; + +public class Conexion { + + public static Connection getConnection(){ + Connection conexion = null; + //Variables para conectarnos a la base de datos + var baseDatos = "estudiantes"; + var url = "jdbc:mysql://localhost:3306/"+baseDatos; + var usuario = "admin"; + var password = "pilar1004"; + + //cargamos la clase del driver de mysql en memoria + try { + Class.forName("com.mysql.cj.jdbc.Driver"); + conexion = DriverManager.getConnection(url, usuario, password); + } catch (ClassNotFoundException | SQLException e){ + System.out.println("Ocurrio un error en la conexion: "+e.getMessage()); + }//Fin Catch + return conexion; + } +} diff --git "a/Metodolog\303\255a/Java/SistemaEstudiantes/src/main/java/UTN/datos/EstudianteDao.java" "b/Metodolog\303\255a/Java/SistemaEstudiantes/src/main/java/UTN/datos/EstudianteDao.java" new file mode 100644 index 0000000..7917149 --- /dev/null +++ "b/Metodolog\303\255a/Java/SistemaEstudiantes/src/main/java/UTN/datos/EstudianteDao.java" @@ -0,0 +1,197 @@ +package UTN.datos; +import UTN.dominio.Estudiante; + +import static UTN.conexion.Conexion.getConnection; +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.util.ArrayList; +import java.util.List; + +public class EstudianteDao { + //Metod listar + public List listarEstudiante() { + List estudiantes = new ArrayList<>(); + //Creamos algunos objetos que son necesarios para comunicarnos con la base de datos + PreparedStatement ps; //Envia la sentencia a la base de datos + ResultSet rs; //Obtenemos el resultado de la base de datos + //Creamos un objeto de tipo conexion + Connection con = getConnection(); + String sql = "SELECT * FROM estudiantes2022 ORDER BY idestudiantes2022"; + try { + ps = con.prepareStatement(sql); + rs = ps.executeQuery(); + while (rs.next()) { + var estudiante = new Estudiante(); + estudiante.setIdEstudiante(rs.getInt("idestudiantes2022")); + estudiante.setNombre(rs.getString("nombre")); + estudiante.setApellido(rs.getString("apellido")); + estudiante.setTelefono(rs.getString("telefono")); + estudiante.setEmail(rs.getString("email")); + //Falta agregarlo a la lista + estudiantes.add(estudiante); + } + } catch (Exception e) { + System.out.println("Ocurrio un error al seleccionar datos: " + e.getMessage()); + } finally { + try { + con.close(); + } catch (Exception e) { + System.out.println("Ocurrio un error al cerrar la conexion: " + e.getMessage()); + }//Fin Finally + return estudiantes; + }// Fin metodo Listar + } + + //Metodo por id -> fin by id + public boolean buscarEstudiantePorId(Estudiante estudiante){ + PreparedStatement ps; + ResultSet rs; + Connection con = getConnection(); + String sql = "SELECT * FROM estudiantes2022=?"; + try{ + ps = con.prepareStatement(sql); + ps.setInt(1, estudiante.getIdEstudiante()); + rs = ps.executeQuery(); + if(rs.next()){ + estudiante.setNombre(rs.getString("nombre")); + estudiante.setApellido(rs.getString("apellido")); + estudiante.setTelefono(rs.getString("telefono")); + estudiante.setEmail(rs.getString("email")); + }//Fin if + } catch (Exception e){ + System.out.println("Ocurrio un error al buscar estudiante: "+e.getMessage()); + } + finally { + try { + con.close(); + } catch (Exception e){ + System.out.println("Ocurrio un error al cerrar la conexion: "+e.getMessage()); + }//Fin Catch + }//Fin finally + return false; + } + + //Metodo agregar un nuevo estudiante + public boolean agregarEstudiante(Estudiante estudiante){ + PreparedStatement ps; + ResultSet rs; + Connection con = getConnection(); + String sql = "INSERT INTO estudiantes2022(nombre, apellido, telefono, email) VALUES(?, ?. ?, ?)"; + try{ + ps = con.prepareStatement(sql); + ps.setString(1, estudiante.getNombre()); + ps.setString(2, estudiante.getApellido()); + ps.setString(3, estudiante.getTelefono()); + ps.setString(4, estudiante.getEmail()); + ps.execute(); + return true; + } catch (Exception e){ + System.out.println("Ocurrio un error al agregar estudiante "+e.getMessage()); + }//Fin Catch + finally { + try{ + con.close(); + } catch (Exception e){ + System.out.println("Error al cerrar la conexion: "+e.getMessage()); + }//fin catch + }//fin finally + return false; + } //Fin metodo agregarEstudiante + + //Metodo para modificar estudiante + public boolean modificarEstudiante(Estudiante estudiante){ + PreparedStatement ps; + Connection con = getConnection(); + String sql = "UPDATE estudiantes2022 SET nombre=?, apellido=?, telefono=?, email=? WHERE idestudiantes2022=?"; + try { + ps = con.prepareStatement(sql); + ps.setString(1, estudiante.getNombre()); + ps.setString(2, estudiante.getApellido()); + ps.setString(3, estudiante.getTelefono()); + ps.setString(4, estudiante.getEmail()); + ps.setInt(5, estudiante.getIdEstudiante()); + ps.execute(); + return true; + } catch (Exception e){ + System.out.println("Error al modificar estudiante: "+e.getMessage()); + }//Fin catch + finally { + try{ + con.close(); + } catch (Exception e){ + System.out.println("Error al cerrar la conexion: "+e.getMessage()); + }//fin catch + }//fin finally + return false; + }//Fin metodo modificarEstudiante + + //Metodo Eliminar Estudiante + public boolean eliminarEstudiante(Estudiante estudiante){ + PreparedStatement ps; + Connection con = getConnection(); + String sql = "DELETE FROM estudiantes2022 WHERE idestudiantes2022=?"; + try{ + ps = con.prepareStatement(sql); + ps.setInt(1,estudiante.getIdEstudiante()); + ps.execute(); + return true; + } catch (Exception e){ + System.out.println("Error al eliminar estudiante: "+e.getMessage()); + } + finally { + try{ + con.close(); + } catch (Exception e){ + System.out.println("Error al cerrar la conexion: "+e.getMessage()); + } + } + return false; + } + + public static void main(String[] args) { + var estudianteDao = new EstudianteDao(); + //Modificar estudiante + //var estudianteModificado = new Estudiante(1, "Juan Carlos", "Juarez", "55545454665", "jjuarez@mail.com"); + //var modificado = estudianteDao.modificarEstudiante(estudianteModificado); + //if(modificado) + // System.out.println("Estudiante modificado: "+estudianteModificado); + //else + // System.out.println("No se modifico el estudiante: "+estudianteModificado); + + /*//Agregar estudiante + var nuevoEstudiante = new Estudiante("Carlos", "Lara", "55655555", "carlosl@mail.com"); + var agregado = estudianteDao.agregarEstudiante(nuevoEstudiante); + if(agregado) + System.out.println("Estudiante agregado: "+nuevoEstudiante); + else + System.out.println("No se ha agregado estudiante: "+nuevoEstudiante);*/ + + //Eliminar Estudiante con id 3 + var estudianteEliminar = new Estudiante(4); + var eliminado = estudianteDao.eliminarEstudiante((estudianteEliminar)); + if(eliminado) + System.out.println("Estudiante eliminado: "+estudianteEliminar); + else + System.out.println("No se elimino estudiante: "+estudianteEliminar); + + + //Listar los estudiantes + System.out.println("Listado de estudiantes: "); + List estudiantes = estudianteDao.listarEstudiante(); + estudiantes.forEach(System.out::println);//Funcion llamada Lambda para imprimir + + + + + /*//Buscar por id + var estudiante1 = new Estudiante(1); + System.out.println("Estudiante antes de la busqueda: "+estudiante1); + System.out.println("Estudiantes antes de la busqueda: "+estudiante1); + var encontrado = estudianteDao.buscarEstudiantePorId(estudiante1); + if(encontrado) + System.out.println("Estudiante encontrado: "+estudiante1); + else + System.out.println("No se encontro al estudiante: "+estudiante1.getIdEstudiante()); + */} +} diff --git "a/Metodolog\303\255a/Java/SistemaEstudiantes/src/main/java/UTN/dominio/Estudiante.java" "b/Metodolog\303\255a/Java/SistemaEstudiantes/src/main/java/UTN/dominio/Estudiante.java" new file mode 100644 index 0000000..07dd89d --- /dev/null +++ "b/Metodolog\303\255a/Java/SistemaEstudiantes/src/main/java/UTN/dominio/Estudiante.java" @@ -0,0 +1,81 @@ +package UTN.dominio; + +public class Estudiante { + private int idEstudiante; + private String nombre; + private String apellido; + private String telefono; + private String email; + + public Estudiante(){} //Constructor Vacio + + public Estudiante(int idEstudiante){ //Constructor para la llave primaria + this.idEstudiante = idEstudiante; + } + //Constructor para insertar un nuevo estudiante + public Estudiante(String nombre, String apellido, String telefono, String email){ + this.nombre = nombre; + this.apellido = apellido; + this.telefono = telefono; + this.email = email; + } + //Constructor para modificar estudiante + public Estudiante(int idEstudiante, String nombre, String apellido, String telefono, String email){ + this.idEstudiante = idEstudiante; + this.nombre = nombre; + this.apellido = apellido; + this.telefono = telefono; + this.email = email; + } + + public int getIdEstudiante() { + return idEstudiante; + } + + public void setIdEstudiante(int idEstudiante) { + this.idEstudiante = idEstudiante; + } + + public String getNombre() { + return nombre; + } + + public void setNombre(String nombre) { + this.nombre = nombre; + } + + public String getApellido() { + return apellido; + } + + public void setApellido(String apellido) { + this.apellido = apellido; + } + + public String getTelefono() { + return telefono; + } + + public void setTelefono(String telefono) { + this.telefono = telefono; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + @Override + public String toString() { + return "Estudiante{" + + "idEstudiante=" + idEstudiante + + ", nombre='" + nombre + '\'' + + ", apellido='" + apellido + '\'' + + ", telefono='" + telefono + '\'' + + ", email='" + email + '\'' + + '}'; + } +} diff --git "a/Metodolog\303\255a/Java/SistemaEstudiantes/src/main/java/UTN/presentacion/SistemaEstudiantesApp.java" "b/Metodolog\303\255a/Java/SistemaEstudiantes/src/main/java/UTN/presentacion/SistemaEstudiantesApp.java" new file mode 100644 index 0000000..09d8c38 --- /dev/null +++ "b/Metodolog\303\255a/Java/SistemaEstudiantes/src/main/java/UTN/presentacion/SistemaEstudiantesApp.java" @@ -0,0 +1,121 @@ +package UTN.presentacion; + +import UTN.conexion.Conexion; +import UTN.datos.EstudianteDao; +import UTN.dominio.Estudiante; + +import java.util.Scanner; + +public class SistemaEstudiantesApp { + public static void main(String[] args) { + var salir = false; + var consola = new Scanner(System.in);//Para leer informacion de la consola + //Se crea una instancia de la clase servicio, esto lo hacemos fuera del ciclo + var estudianteDao = new EstudianteDao();//esta instancia debe hacerse una vez + while(!salir){ + try{ + mostrarMenu(); //Este sera el metodo que devolvera un booleano + salir = ejecutarOpciones(consola, estudianteDao);//Este arroja una exception + } catch (Exception e){ + System.out.println("Ocurrio un error al ejecutar la operacion: "+e.getMessage()); + } + }//Fin while + } //Fin Main + + private static void mostrarMenu(){ + System.out.println(""" + *** Sistema de Estudiantes *** + 1. Listar estudiantes + 2. Buscar estudiante + 3. Agregar estudiante + 4. Modificar estudiante + 5. Eliminar estudiante + 6. Salir + Elige una opciĆ³n: + """); + } + //Metodo para ejecutar las opciones, va a regresar un valor booleano, ya que es el que + //puede modificar el valor de la variable salir, si es verdadero termina el ciclo while. + private static boolean ejecutarOpciones(Scanner consola, EstudianteDao estudianteDAO){ + var opcion = Integer.parseInt(consola.nextLine()); + var salir = false; + switch (opcion){ + case 1 -> {//Listar estudiantes + System.out.println("Listado de Estudiantes..."); + //no muestra la informacion, solo recupera la info y regresa una lista + var estudiantes = estudianteDAO.listarEstudiante();//recibe el listado + //vamos a iterar cada objeto de tipo estudiante + estudiantes.forEach(System.out::println);//para imprimir la lista + }//Fin caso 1 + case 2 ->{//Buscar estudiante por id + System.out.println("Introduce el id_estudiante a buscar: "); + var idEstudiante = Integer.parseInt(consola.nextLine()); + var estudiante = new Estudiante(idEstudiante); + var encontrado = estudianteDAO.buscarEstudiantePorId(estudiante); + if(encontrado) + System.out.println("Estudiante encontrador: "+estudiante); + else + System.out.println("Estudiante no encontrado: "+estudiante); + }//Fin caso 2 + + case 3 ->{//Agregar estudiante + System.out.println("Agregar estudiante: "); + System.out.println("Nombre: "); + var nombre = consola.nextLine(); + System.out.println("Apellido: "); + var apellido = consola.nextLine(); + System.out.println("Telefono: "); + var telefono = consola.nextLine(); + System.out.println("Email: "); + var email = consola.nextLine(); + //crear objeto estudiante(sin id) + var estudiante = new Estudiante(nombre, apellido,telefono,email); + var agregado = estudianteDAO.agregarEstudiante(estudiante); + if(agregado) + System.out.println("Estudiante agregado: "+estudiante); + else + System.out.println("Estudiante no agregado: "+estudiante); + }//Fin caso 3 + case 4 ->{//Modificar estudiante + System.out.println("Modificar estudiante: "); + //Aqui lo primero es especificar cual es el id del objeto a modificar + System.out.println("ID Estudiante: "); + var idEstudiante = Integer.parseInt(consola.nextLine()); + System.out.println("Nombre: "); + var nombre = consola.nextLine(); + System.out.println("Apellido: "); + var apellido = consola.nextLine(); + System.out.println("Telefono: "); + var telefono = consola.nextLine(); + System.out.println("Email: "); + var email = consola.nextLine(); + //crea el objeto estudiante a modificar + var estudiante= + new Estudiante(idEstudiante, nombre, apellido,telefono,email); + var modificado = estudianteDAO.modificarEstudiante(estudiante); + if(modificado) + System.out.println("Estudiante agregado: "+estudiante); + else + System.out.println("Estudiante no agregado: "+estudiante); + }//Fin caso 4 + case 5 -> {//Eliminar estudiante + System.out.println("Eliminar estudiante: "); + System.out.println("Id Estudiante: "); + var idEstudiante = Integer.parseInt(consola.nextLine()); + var estudiante = new Estudiante(idEstudiante); + var eliminado = estudianteDAO.eliminarEstudiante(estudiante); + if(eliminado) + System.out.println("Estudiante eliminado: "+estudiante); + else + System.out.println("Estudiante no eliminado: "+estudiante); + }//Fin caso 5 + case 6 ->{//salir + System.out.println("Hasta Pronto!!!"); + salir = true; + }//Fin caso 6 + default -> System.out.println("Opcion no reconocida, ingrese otra opcion"); + }//Fin Switch + return salir; + } +}// Fin clase +