public boolean deleteAllPaciente(int id) { List<Consulta> consultas = new ArrayList<>(); String sql = "SELECT * FROM Consulta where NI_Paciente = ?"; try { PreparedStatement ps = connection.prepareStatement(sql); ps.setInt(1, id); ResultSet rs = ps.executeQuery(); ProcedimentoDAO procedimentoDAO = new ProcedimentoDAO(); PacienteDAO pacienteDAO = new PacienteDAO(); ProfissionalDAO profissionalDAO = new ProfissionalDAO(); while (rs.next()) { Paciente paciente = pacienteDAO.readById(rs.getInt("NI_Paciente")); Profissional profissional = profissionalDAO.readById(rs.getInt("NI_Profissional")); Consulta consulta = new Consulta( rs.getDate("DT_dataHora"), rs.getDouble("ND_valorTotal"), rs.getInt("NI_Consulta"), paciente, profissional); consulta.setProcedimentos(procedimentoDAO.readByConsulta(consulta.getIdConsulta())); procedimentoDAO.deleteAllInConsulta(consulta.getIdConsulta()); delete(consulta); } ps.close(); rs.close(); return true; } catch (SQLException ex) { ex.printStackTrace(); } return false; }
@Override public List<Consulta> read() { List<Consulta> consultas = new ArrayList<>(); String sql = "SELECT * FROM Consulta c " + "INNER JOIN Paciente p ON p.NI_Paciente = c.NI_Paciente " + "JOIN Profissional pr ON pr.NI_Profissional = c.NI_Profissional"; try { PreparedStatement ps = connection.prepareStatement(sql); ResultSet rs = ps.executeQuery(); PacienteDAO pacienteDAO = new PacienteDAO(); ProfissionalDAO profissionalDAO = new ProfissionalDAO(); ProcedimentoDAO procedimentoDAO = new ProcedimentoDAO(); while (rs.next()) { Paciente paciente = pacienteDAO.readById(rs.getInt("NI_Paciente")); Profissional profissional = profissionalDAO.readById(rs.getInt("NI_Profissional")); Consulta consulta = new Consulta( rs.getDate("DT_dataHora"), rs.getDouble("ND_valorTotal"), rs.getInt("NI_Consulta"), paciente, profissional); consulta.setProcedimentos(procedimentoDAO.readByConsulta(consulta.getIdConsulta())); consultas.add(consulta); } ps.close(); rs.close(); } catch (SQLException ex) { ex.printStackTrace(); } return consultas; }
public Consulta readById(int id) { String sql = "SELECT * FROM Consulta c " + "INNER JOIN Paciente p ON p.NI_Paciente = c.NI_Paciente " + "JOIN Profissional pr ON pr.NI_Profissional = c.NI_Profissional " + "WHERE NI_Consulta = ?"; try { PreparedStatement ps = connection.prepareStatement(sql); ps.setInt(1, id); ResultSet rs = ps.executeQuery(); PacienteDAO pacienteDAO = new PacienteDAO(); ProfissionalDAO profissionalDAO = new ProfissionalDAO(); ProcedimentoDAO procedimentoDAO = new ProcedimentoDAO(); while (rs.next()) { Paciente paciente = pacienteDAO.readById(rs.getInt("NI_Paciente")); Profissional profissional = profissionalDAO.readById(rs.getInt("NI_Profissional")); Consulta consulta = new Consulta( rs.getDate("DT_dataHora"), rs.getDouble("ND_valorTotal"), rs.getInt("NI_Consulta"), paciente, profissional); consulta.setProcedimentos(procedimentoDAO.readByConsulta(consulta.getIdConsulta())); ps.close(); rs.close(); return consulta; } } catch (SQLException ex) { ex.printStackTrace(); } return null; }