Class BaseDatos
java.lang.Object
BaseDatos
- All Implemented Interfaces:
AutoCloseable
Única clase del sistema que trabaja con MySQL (por JDBC): crea las tablas, guarda los planes y los
estudiantes y los vuelve a leer. Abre una sola conexión al crearse y la usa para todas las consultas;
implementa AutoCloseable para cerrarla con un try-with-resources.
- Version:
- 4.0
- Author:
- Alejandro D. Castillo M., Saúl Castillo, Adonis Bonilla
-
Constructor Summary
ConstructorsConstructorDescriptionBaseDatos(Configuracion configuracion) Abre la conexión con MySQL usando los datos de config.properties. -
Method Summary
Modifier and TypeMethodDescriptionbuscarEstudiante(String cedula, Map<String, PlanEstudio> planes) Busca un estudiante por su cédula y carga su historial (las calificaciones guardadas).Lee todos los planes con sus asignaturas (en el orden del plan) y sus prerrequisitos.voidclose()Cierra la conexión con MySQL.voidguardar(Collection<PlanEstudio> planes, List<Estudiante> estudiantes) Guarda los planes y los estudiantes en una sola transacción: o se guarda todo o no se guarda nada.voidBorra las cinco tablas (si existen) y las vuelve a crear vacías, para cargar los datos sin duplicarlos.
-
Constructor Details
-
BaseDatos
Abre la conexión con MySQL usando los datos de config.properties.- Parameters:
configuracion- la configuración con db.url, db.usuario y db.clave- Throws:
SQLException- si MySQL no está disponible o los datos de acceso no son correctos
-
-
Method Details
-
recrearTablas
Borra las cinco tablas (si existen) y las vuelve a crear vacías, para cargar los datos sin duplicarlos.- Throws:
SQLException- si alguna sentencia falla
-
guardar
public void guardar(Collection<PlanEstudio> planes, List<Estudiante> estudiantes) throws SQLException Guarda los planes y los estudiantes en una sola transacción: o se guarda todo o no se guarda nada. Las filas se envían por lotes (addBatch) en vez de una consulta por fila.- Parameters:
planes- los planes de estudio con sus asignaturas y prerrequisitosestudiantes- los estudiantes con sus calificaciones- Throws:
SQLException- si alguna inserción falla; en ese caso se deshace todo
-
cargarPlanes
Lee todos los planes con sus asignaturas (en el orden del plan) y sus prerrequisitos.- Returns:
- los planes por código de carrera; vacío si todavía no se cargaron datos
- Throws:
SQLException- si las tablas no existen o la consulta falla
-
buscarEstudiante
public Estudiante buscarEstudiante(String cedula, Map<String, PlanEstudio> planes) throws SQLExceptionBusca un estudiante por su cédula y carga su historial (las calificaciones guardadas).- Parameters:
cedula- la cédula ya validadaplanes- los planes cargados, para unir cada nota con su asignatura- Returns:
- el estudiante con sus calificaciones, o null si no existe
- Throws:
SQLException- si la consulta falla
-
close
Cierra la conexión con MySQL. La llama sola el try-with-resources al terminar.- Specified by:
closein interfaceAutoCloseable- Throws:
SQLException- si la conexión no se puede cerrar
-