From 082074c6a7f2b8aebb810de0430f03c0556b76f3 Mon Sep 17 00:00:00 2001 From: h4ckx0r Date: Sun, 6 Apr 2025 23:02:00 +0200 Subject: [PATCH] =?UTF-8?q?A=C3=B1adido=20el=20ControladorProfesor=20y=20t?= =?UTF-8?q?oda=20su=20gesti=C3=B3n?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controlador/ControladorProfesor.java | 176 ++++++++++++++++++ src/main/java/net/h4ckx0r/vista/MainView.java | 56 +++++- 2 files changed, 231 insertions(+), 1 deletion(-) create mode 100644 src/main/java/net/h4ckx0r/controlador/ControladorProfesor.java diff --git a/src/main/java/net/h4ckx0r/controlador/ControladorProfesor.java b/src/main/java/net/h4ckx0r/controlador/ControladorProfesor.java new file mode 100644 index 0000000..8712880 --- /dev/null +++ b/src/main/java/net/h4ckx0r/controlador/ControladorProfesor.java @@ -0,0 +1,176 @@ +package net.h4ckx0r.controlador; + +import net.h4ckx0r.modelo.Profesor; + +import java.sql.*; + +public class ControladorProfesor { + public static Profesor getPrimerProfesor() { + Connection conn = GestorConexiones.getConexion(); + + try { + Statement st = conn.createStatement(); + ResultSet rs = st.executeQuery("SELECT * FROM profesor LIMIT 1"); + + if (rs.next()) { + return new Profesor( + rs.getInt("id"), + rs.getString("nombre"), + rs.getString("apellido1"), + rs.getString("apellido2"), + rs.getString("dni"), + rs.getString("direccion"), + rs.getString("email"), + rs.getString("telefono"), + rs.getInt("idTipologiaSexo") + ); + } + + } catch (SQLException e) { + throw new RuntimeException(e); + } + + return null; + } + + public static Profesor getUltimoProfesor() { + Connection conn = GestorConexiones.getConexion(); + + try { + Statement st = conn.createStatement(); + ResultSet rs = st.executeQuery("SELECT * FROM profesor ORDER BY id DESC LIMIT 1"); + + if (rs.next()) { + return new Profesor( + rs.getInt("id"), + rs.getString("nombre"), + rs.getString("apellido1"), + rs.getString("apellido2"), + rs.getString("dni"), + rs.getString("direccion"), + rs.getString("email"), + rs.getString("telefono"), + rs.getInt("idTipologiaSexo") + ); + } + + } catch (SQLException e) { + throw new RuntimeException(e); + } + + return null; + } + + public static Profesor getSiguienteProfesor(Profesor profesorActual) { + Connection conn = GestorConexiones.getConexion(); + + try { + PreparedStatement pst = conn.prepareStatement("SELECT * FROM profesor WHERE id > ? LIMIT 1"); + pst.setInt(1, profesorActual.getId()); + ResultSet rs = pst.executeQuery(); + if (rs.next()) { + return new Profesor( + rs.getInt("id"), + rs.getString("nombre"), + rs.getString("apellido1"), + rs.getString("apellido2"), + rs.getString("dni"), + rs.getString("direccion"), + rs.getString("email"), + rs.getString("telefono"), + rs.getInt("idTipologiaSexo") + ); + } + + } catch (SQLException e) { + throw new RuntimeException(e); + } + + return null; + + } + + public static Profesor getAnteriorProfesor(Profesor profesorActual) { + Connection conn = GestorConexiones.getConexion(); + + try { + PreparedStatement pst = conn.prepareStatement("SELECT * FROM profesor WHERE id < ? ORDER BY id DESC LIMIT 1"); + pst.setInt(1, profesorActual.getId()); + ResultSet rs = pst.executeQuery(); + if (rs.next()) { + return new Profesor( + rs.getInt("id"), + rs.getString("nombre"), + rs.getString("apellido1"), + rs.getString("apellido2"), + rs.getString("dni"), + rs.getString("direccion"), + rs.getString("email"), + rs.getString("telefono"), + rs.getInt("idTipologiaSexo") + ); + } + + } catch (SQLException e) { + throw new RuntimeException(e); + } + + return null; + + } + + public static int borrarProfesor(Profesor profesor) { + Connection conn = GestorConexiones.getConexion(); + try { + PreparedStatement pst = conn.prepareStatement("DELETE FROM profesor WHERE id = ?"); + pst.setInt(1, profesor.getId()); + return pst.executeUpdate(); + } catch (SQLException e) { + return 0; + //throw new RuntimeException(e); + } + } + + public static int guardarProfesor(Profesor estudiante) { + if (estudiante.getId() == -1) { + estudiante.setId(getUltimoProfesor().getId() + 1); + return nuevoProfesor(estudiante); + } + Connection conn = GestorConexiones.getConexion(); + try { + PreparedStatement pst = conn.prepareStatement("UPDATE profesor SET nombre = ?, apellido1 = ?, apellido2 = ?, dni = ?, direccion = ?, email = ?, telefono = ?, idTipologiaSexo = ? WHERE id = ?"); + pst.setString(1, estudiante.getNombre()); + pst.setString(2, estudiante.getApellido1()); + pst.setString(3, estudiante.getApellido2()); + pst.setString(4, estudiante.getDni()); + pst.setString(5, estudiante.getDireccion()); + pst.setString(6, estudiante.getEmail()); + pst.setString(7, estudiante.getTelefono()); + pst.setInt(8, estudiante.getIdTipologiaSexo()); + pst.setInt(9, estudiante.getId()); + return pst.executeUpdate(); + } catch (SQLException e) { + return 0; + //throw new RuntimeException(e); + } + } + + public static int nuevoProfesor(Profesor profesor) { + Connection conn = GestorConexiones.getConexion(); + try { + PreparedStatement pst = conn.prepareStatement("INSERT INTO profesor (id,nombre,apellido1,apellido2,dni,direccion,email,telefono,idTipologiaSexo) VALUES (?,?,?,?,?,?,?,?,?)"); + pst.setInt(1, profesor.getId()); + pst.setString(2, profesor.getNombre()); + pst.setString(3, profesor.getApellido1()); + pst.setString(4, profesor.getApellido2()); + pst.setString(5, profesor.getDni()); + pst.setString(6, profesor.getDireccion()); + pst.setString(7, profesor.getEmail()); + pst.setString(8, profesor.getTelefono()); + pst.setInt(9, profesor.getIdTipologiaSexo()); + return pst.executeUpdate(); + } catch (SQLException e) { + throw new RuntimeException(e); + } + } +} diff --git a/src/main/java/net/h4ckx0r/vista/MainView.java b/src/main/java/net/h4ckx0r/vista/MainView.java index 90963eb..a1c7d52 100644 --- a/src/main/java/net/h4ckx0r/vista/MainView.java +++ b/src/main/java/net/h4ckx0r/vista/MainView.java @@ -3,9 +3,11 @@ package net.h4ckx0r.vista; import net.h4ckx0r.controlador.ControladorCurso; import net.h4ckx0r.controlador.ControladorEstudiante; import net.h4ckx0r.controlador.ControladorMateria; +import net.h4ckx0r.controlador.ControladorProfesor; import net.h4ckx0r.modelo.Curso; import net.h4ckx0r.modelo.Estudiante; import net.h4ckx0r.modelo.Materia; +import net.h4ckx0r.modelo.Profesor; import net.h4ckx0r.vista.panels.PanelCursos; import net.h4ckx0r.vista.panels.PanelMaterias; import net.h4ckx0r.vista.panels.PanelPersona; @@ -65,6 +67,7 @@ public class MainView extends JFrame { frame.panelCursos.setCursoActual(ControladorCurso.getPrimerCurso()); frame.panelMaterias.setMateriaActual(ControladorMateria.getPrimeraMateria()); frame.panelEstudiantes.setEstudianteActual(ControladorEstudiante.getPrimerEstudiante()); + frame.panelProfesores.setProfesorActual(ControladorProfesor.getPrimerProfesor()); frame.actualizarBotonesPantalla(); @@ -260,6 +263,8 @@ public class MainView extends JFrame { panelMaterias.setMateriaActual(new Materia(-1, "", "", -1)); } else if (tabbedPane.getSelectedComponent() == panelEstudiantes) { panelEstudiantes.setEstudianteActual(new Estudiante(-1, "", "", "", "", "", "", "", -1)); + } else if (tabbedPane.getSelectedComponent() == panelProfesores) { + panelProfesores.setProfesorActual(new Profesor(-1, "", "", "", "", "", "", "", -1)); } } @@ -312,6 +317,20 @@ public class MainView extends JFrame { agregarRegistro(); } } + } else if (tabbedPane.getSelectedComponent() == panelProfesores) { + Profesor profesorSiguiente = ControladorProfesor.getSiguienteProfesor(panelProfesores.getProfesorActual()); + Profesor profesorAnterior = ControladorProfesor.getAnteriorProfesor(panelProfesores.getProfesorActual()); + + resultado = ControladorProfesor.borrarProfesor(panelProfesores.getProfesorActual()); + if (resultado > 0) { + if (profesorSiguiente != null) { + panelProfesores.setProfesorActual(profesorSiguiente); + } else if (profesorAnterior != null) { + panelProfesores.setProfesorActual(profesorAnterior); + } else { + agregarRegistro(); + } + } } if (resultado > 0) { @@ -330,6 +349,8 @@ public class MainView extends JFrame { resultado = ControladorMateria.guardarMateria(panelMaterias.getMateriaActual()); } else if (tabbedPane.getSelectedComponent() == panelEstudiantes) { resultado = ControladorEstudiante.guardarEstudiante(panelEstudiantes.getEstudianteActual()); + } else if (tabbedPane.getSelectedComponent() == panelProfesores) { + resultado = ControladorProfesor.guardarProfesor(panelProfesores.getProfesorActual()); } if (resultado > 0) { @@ -361,6 +382,12 @@ public class MainView extends JFrame { panelEstudiantes.setEstudianteActual(primerEstudiante); actualizarBotonesPantalla(); } + } else if (tabbedPane.getSelectedComponent() == panelProfesores) { + Profesor primerProfesor = ControladorProfesor.getPrimerProfesor(); + if (primerProfesor != null) { + panelProfesores.setProfesorActual(primerProfesor); + actualizarBotonesPantalla(); + } } } @@ -384,6 +411,12 @@ public class MainView extends JFrame { panelEstudiantes.setEstudianteActual(ultimoEstudiante); actualizarBotonesPantalla(); } + } else if (tabbedPane.getSelectedComponent() == panelProfesores) { + Profesor ultimoProfesor = ControladorProfesor.getUltimoProfesor(); + if (ultimoProfesor != null) { + panelProfesores.setProfesorActual(ultimoProfesor); + actualizarBotonesPantalla(); + } } } @@ -395,7 +428,6 @@ public class MainView extends JFrame { panelCursos.setCursoActual(siguienteCurso); actualizarBotonesPantalla(); } - } else if (tabbedPane.getSelectedComponent() == panelMaterias) { Materia siguienteMateria = ControladorMateria.getSiguienteMateria(panelMaterias.getMateriaActual()); if (siguienteMateria != null) { @@ -408,6 +440,12 @@ public class MainView extends JFrame { panelEstudiantes.setEstudianteActual(siguienteEstudiante); actualizarBotonesPantalla(); } + } else if (tabbedPane.getSelectedComponent() == panelProfesores) { + Profesor siguienteProfesor = ControladorProfesor.getSiguienteProfesor(panelProfesores.getProfesorActual()); + if (siguienteProfesor != null) { + panelProfesores.setProfesorActual(siguienteProfesor); + actualizarBotonesPantalla(); + } } } @@ -446,6 +484,17 @@ public class MainView extends JFrame { actualizarBotonesPantalla(); } } + } else if (tabbedPane.getSelectedComponent() == panelProfesores) { + Profesor profesorActual = panelProfesores.getProfesorActual(); + if (profesorActual.getId() == -1) { + panelProfesores.setProfesorActual(ControladorProfesor.getUltimoProfesor()); + } else { + Profesor anteriorProfesor = ControladorProfesor.getAnteriorProfesor(panelProfesores.getProfesorActual()); + if (anteriorProfesor != null) { + panelProfesores.setProfesorActual(anteriorProfesor); + actualizarBotonesPantalla(); + } + } } } @@ -465,6 +514,11 @@ public class MainView extends JFrame { alternarBotonesToolbar( estudianteActual.getId() == ControladorEstudiante.getPrimerEstudiante().getId(), estudianteActual.getId() == ControladorEstudiante.getUltimoEstudiante().getId()); + } else if (tabbedPane.getSelectedComponent() == panelProfesores) { + Profesor profesorActual = panelProfesores.getProfesorActual(); + alternarBotonesToolbar( + profesorActual.getId() == ControladorProfesor.getPrimerProfesor().getId(), + profesorActual.getId() == ControladorProfesor.getUltimoProfesor().getId()); } }