package ManejoBD;
import GeneracionHorarios.Clase;
import GeneracionHorarios.Curso;
import GeneracionHorarios.Profesor;
import java.sql.*;
import java.util.ArrayList;
public class CursoBD {
private Curso curso;
public CursoBD(Curso curso) {
this.curso = curso;
}
public static void agregarCurso(Curso curso) throws SQLException {
String cadAgregar = "INSERT INTO CURSO (nombre,tipo,horario,horasSemanales,cantalumnos,ciclo,turno,codProfesor) " +
"VALUES (?,?,?,?,?,?,?,?)";
PreparedStatement pst = AccesoBD.conn.prepareStatement(cadAgregar);
pst.setString(1,curso.getNombre());
pst.setString(2,curso.getTipo());
pst.setString(3,curso.getHorario());
pst.setInt(4,curso.getHorasSemanales());
pst.setInt(5,curso.getCantAlumnos());
pst.setInt(6,curso.getCiclo());
pst.setInt(7,curso.getTurno());
pst.setInt(8,curso.getProfesor().getCodProfesor());
pst.executeUpdate();
pst.close();
}
// public static void asignarClase(Clase clase) throws SQLException {
// String cadAsignarClase = "INSERT INTO Clase (horaIni,horaFin,codCurso,codSalon) VALUES (?,?,?,?)";
// PreparedStatement pst = AccesoBD.conn.prepareStatement(cadAsignarClase);
// pst.setInt(1,clase.getHoraIni());
// pst.setInt(2,clase.getHoraFin());
// pst.setInt(3,clase.getCurso().getCodCurso());
// pst.setInt(4,clase.getSalon().getCodSalon());
// pst.executeUpdate();
// pst.close();
// }
//1: GRASP 2: TABU
public static void asignarClase(Clase clase,int tipoAlgoritmo) throws SQLException {
String cadAsignarClase = "INSERT INTO Clase (horaIni,horaFin,codCurso,salon,dia,tipoAlgoritmo) VALUES (?,?,?,?,?,?)";
PreparedStatement pst = AccesoBD.conn.prepareStatement(cadAsignarClase);
pst.setInt(1,clase.getHoraIni());
pst.setInt(2,clase.getHoraFin());
pst.setInt(3,clase.getCurso().getCodCurso());
//en vez de guardar nombre de sal[on... guardo el c[odigo
pst.setString(4,clase.getSalon().getNombre());
//pst.setInt(4,clase.getSalon().getCodSalon());
pst.setString(5,clase.getSalon().getDia());
pst.setInt(6,tipoAlgoritmo);
pst.executeUpdate();
pst.close();
}
public static ArrayList<Curso> obtCursos() throws SQLException {
String cadObtCursos = "SELECT C.nombre,C.tipo,C.horario,C.horasSemanales,C.cantAlumnos,C.ciclo,C.turno," +
"P.codProfesor,P.codigo,P.nombre, C.codCurso " +
"FROM Curso C,Profesor P " +
"WHERE C.codProfesor = P.codProfesor;";
Statement stm = AccesoBD.conn.createStatement();
ResultSet rs = stm.executeQuery(cadObtCursos);
ArrayList<Curso> arrCursos = new ArrayList<Curso>();
while (rs.next()){
Curso curso = new Curso (rs.getInt(11),rs.getString(1),rs.getString(2),rs.getString(3),rs.getInt(4),rs.getInt(5),
rs.getInt(6),rs.getInt(7),new Profesor(rs.getInt(8),rs.getString(9),rs.getString(10)));
arrCursos.add(curso);
}
rs.close();
stm.close();
return arrCursos;
}
public static Curso buscarCurso(int codCurso) throws SQLException {
String cadBuscar = "SELECT codCurso,nombre,tipo,horario,horasSemanales,cantAlumnos,ciclo,turno,codProfesor " +
"FROM Curso WHERE codCurso = ?;";
PreparedStatement pst = AccesoBD.conn.prepareStatement(cadBuscar);
pst.setInt(1,codCurso);
ResultSet rs = pst.executeQuery();
rs.next();
Curso cursoBuscado = new Curso(rs.getInt(1),rs.getString(2),rs.getString(3),rs.getString(4),rs.getInt(5),rs.getInt(6),
rs.getInt(7),rs.getInt(8),ProfesorBD.buscarProfesor(rs.getInt(9)));
pst.close();
rs.close();
return cursoBuscado;
}
}