@Override
    public List<Consulta> listAll() {

        Connection con = null;
        PreparedStatement pstm = null;
        ResultSet rs = null;

        List<Consulta> consultas = new ArrayList<>();
        try {
            con = ConnectionFactory.getConnection();
            pstm = con.prepareStatement(LIST);
            rs = pstm.executeQuery();
            while (rs.next()) {
                //codigo, data_consulta,descricao, codigo_paciente,tipo_consulta,horario
                Consulta c = new Consulta();
                c.setCodigo(rs.getInt("codigo"));
                c.setDataDaConsulta(rs.getDate("data_consulta"));
                c.setDescricao(rs.getString("descricao"));
                c.setTipoConsulta(rs.getString("tipo_consulta"));
                c.setHorario(rs.getTime("horario"));
                Paciente p = new Paciente();
                p.setCodigo(rs.getInt("paciente.codigo"));
                p.setNome(rs.getString("paciente.nome"));
                c.setPaciente(p);

                consultas.add(c);
            }
        } catch (SQLException ex) {
            JOptionPane.showMessageDialog(null, "Erro ao listar(All): " + ex.getMessage());
        } finally {
            try {
                ConnectionFactory.closeConnection(con, pstm, rs);
            } catch (Exception e) {
                JOptionPane.showMessageDialog(null,
                        "Erro ao fechar a conexão"
                        + e.getMessage());
            }
        }

        return consultas;

    }