public List<Fornecedor> buscar(Fornecedor filtro) {
        try {

            String sql = "select * from pessoa p join Fornecedor f on p.IdPessoa = f.IdPessoa where ativo = 1 ";
            String where = "";

            if (filtro.getNome().length() > 0) {
                if (where.length() > 0) {
                    where = where + " and ";
                }
                where = " and nome like '%" + filtro.getNome() + "%'";
            }

            if (filtro.getCodigo() > 0) {
                if (where.length() > 0) {
                    where = where + " and ";
                }
                where = where + " Idpessoa = " + filtro.getCodigo();
            }

            if (where.length() > 0) {
                sql = sql + where;
            }

            Statement comando = bd.getConexao().createStatement();

            ResultSet resultado = comando.executeQuery(sql);

            // Cria uma lista de produtos vazia
            List<Fornecedor> fornecedores = new LinkedList<>();
            while (resultado.next()) {
                // Inicializa um objeto de produto vazio
                Fornecedor tmp = new Fornecedor();
                // Pega os valores do retorno da consulta e coloca no objeto

                try {

                    tmp.setCodigo(resultado.getInt("IdPessoa"));
                    tmp.setNome(resultado.getString("Nome"));
                    tmp.setCPF(resultado.getString("CPF"));
                    tmp.setRG(resultado.getString("RG"));
                    tmp.setDataNascimento(resultado.getDate("DataNascimento"));
                    tmp.setCNPJ(resultado.getString("CNPJ"));
                    

                } catch (Exception ex) {
                    Logger.getLogger(FornecedorDAO.class.getName()).log(Level.SEVERE, null, ex);
                }

                // Pega o objeto e coloca na lista
                fornecedores.add(tmp);
            }
            return fornecedores;
        } catch (SQLException ex) {
            Logger.getLogger(FornecedorDAO.class.getName()).log(Level.SEVERE, null, ex);
            return null;
        }
    }