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
+