Añadido el ControladorProfesor y toda su gestión

This commit is contained in:
2025-04-06 23:02:00 +02:00
parent 8f4606e62c
commit 082074c6a7
2 changed files with 231 additions and 1 deletions

View File

@@ -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);
}
}
}

View File

@@ -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());
}
}