/**
   * Retorna uma coleção de objetos que possuem dados de todas as linhas da tabela enfermeiro
   *
   * @param pesquisarPessoa - Boolena que trata a condição de pesquisar os dados pessoais
   *     relacionados ao atendente pesquisado
   * @return List<Funcionario> - Coleção de instancias da classe Funcionario que possuem os dados
   *     das linhas da tabela enfermeiro
   */
  public List<Funcionario> pesquisarTodos(Boolean pesquisarPessoa) {

    Connection conecxao = ConexaoDAO.getConnection();
    PreparedStatement ps = null;
    ResultSet rs = null;
    List<Funcionario> funcionarios = new ArrayList<Funcionario>();

    try {
      ps = conecxao.prepareStatement(SQL_PESQUISA);
      rs = ps.executeQuery();

      while (rs.next()) {
        Enfermeiro enfermeiro = new Enfermeiro();

        enfermeiro.setIdFuncionario(rs.getInt("idfuncionario"));
        enfermeiro.setLogin(rs.getString("login"));
        enfermeiro.setSenha(rs.getString("senha"));
        enfermeiro.setStatusDeUsuario(rs.getString("statusdeusuario"));
        enfermeiro.setNumeroDeRegistro(rs.getInt("numeroderegistro"));

        if (pesquisarPessoa) {
          PessoaDAO a = new PessoaDAO();
          enfermeiro.setPessoa(a.pesquisarporID(rs.getInt("pessoa")));
        }

        funcionarios.add(enfermeiro);
      }
    } catch (SQLException e) {
      try {
        if (conecxao != null) {
          conecxao.rollback();
        }
      } catch (SQLException e1) {
        e1.printStackTrace();
      } finally {
        ConexaoDAO.close(conecxao, ps, rs);
      }
      e.printStackTrace();
    }

    return funcionarios;
  }
  /**
   * Procura dentro da tabela de enfermeiro uma linha que possua o mesmo dado nas colunas de login e
   * senha que o do parametro informado
   *
   * @param parametro - Instancia da classe Funcionario responsavel por servir como parametro para
   *     comparação de Login e Senha
   * @return Funcionario - Instancia da classe Funcionario que possui o mesmo Login e Senha do
   *     Funcionario parametrizado
   */
  public Funcionario pesquisarLogin(Funcionario parametro) {

    Connection conecxao = ConexaoDAO.getConnection();
    PreparedStatement ps = null;
    ResultSet rs = null;
    Enfermeiro enfermeiro = new Enfermeiro();

    try {
      ps = conecxao.prepareStatement(SQL_PESQUISA);
      rs = ps.executeQuery();

      while (rs.next()) {
        enfermeiro.setLogin(rs.getString("login"));
        enfermeiro.setSenha(rs.getString("senha"));

        if (enfermeiro.getSenha().equals(parametro.getSenha())
            & enfermeiro.getLogin().equals(parametro.getLogin())) {
          enfermeiro.setIdFuncionario(rs.getInt("idfuncionario"));
          enfermeiro.setStatusDeUsuario(rs.getString("statusdeusuario"));
          enfermeiro.setNumeroDeRegistro(rs.getInt("numeroderegistro"));
          System.out.println("aqui");
          return enfermeiro;
        }
      }
    } catch (SQLException e) {
      try {
        if (conecxao != null) {
          conecxao.rollback();
        }
      } catch (SQLException e1) {
        e1.printStackTrace();
      } finally {
        ConexaoDAO.close(conecxao, ps, rs);
      }
      e.printStackTrace();
    }

    return null;
  }
  public Enfermeiro pesquisarPorID(int ID) {

    Connection conecxao = ConexaoDAO.getConnection();
    PreparedStatement ps = null;
    ResultSet rs = null;
    Enfermeiro enfermeiro = new Enfermeiro();

    try {
      ps = conecxao.prepareStatement("SELECT * from enfermeiro WHERE idfuncionario =" + ID);
      rs = ps.executeQuery();

      while (rs.next()) {
        PessoaDAO dbPessoa = new PessoaDAO();
        enfermeiro.setPessoa(dbPessoa.pesquisarporID(rs.getInt("pessoa")));

        enfermeiro.setLogin(rs.getString("login"));
        enfermeiro.setSenha(rs.getString("senha"));
        enfermeiro.setIdFuncionario(rs.getInt("idfuncionario"));
        enfermeiro.setNumeroDeRegistro(rs.getInt("numeroderegistro"));
      }

    } catch (SQLException e) {
      try {
        if (conecxao != null) {
          conecxao.rollback();
        }
      } catch (SQLException e1) {
        e1.printStackTrace();
      } finally {
        ConexaoDAO.close(conecxao, ps, rs);
      }
      e.printStackTrace();
    }

    return enfermeiro;
  }