Display database image in datatable

Asked

Viewed 80 times

1

I saved an image in the database and want to display in dataTable PS: I know that it is not good practice to store image within the database, this practice was done for study purposes.

<h:form style="margin:auto;margin-left:2%;" id="form-consulta"> 
            <p:dataTable id="dataTable-registros"
                         var="produto" 
                         value="#{produtoMB.produtos}" 
                         rows="15"
                         paginator="true"
                         paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
                         rowsPerPageTemplate="5,10,15"
                         style="width:98%;">

                <p:column headerText="Imagem">
                    //aqui exibiria a imagem    

                </p:column>

                <p:column headerText="Id">
                    <h:outputText value="#{produto.id}" />
                </p:column>

                <p:column headerText="Descrição">
                    <h:outputText value="#{produto.descricao}" />
                </p:column>

                <p:column headerText="Preço">
                    <h:outputText value="#{produto.preco}" />
                </p:column>

                <p:column headerText="Código">
                    <h:outputText value="#{produto.codigo}" />
                </p:column>

                <p:column headerText="Quantidade">
                    <h:outputText value="#{produto.quantidade}" />
                </p:column>

                <p:column headerText="Status">
                    <h:outputText value="#{produto.status}" />
                </p:column>

                <p:column headerText="Marca">
                    <h:outputText value="#{produto.marca}" />
                </p:column>

                <p:column headerText="Data">
                    <h:outputText value="#{produto.data}" />
                </p:column>

                <p:column headerText="" style="width:25px;">

                </p:column>

                <p:column headerText="" style="width:25px;">

                    <p:commandButton icon="ui-icon-pencil" 
                                     title="Editar Registro"                                             
                                     ajax="true"                                             
                                     actionListener="#{produtoMB.editar(produto)}"
                                     oncomplete="PF('dialog-modal-editar').show();" 
                                     update="dialog-modal-editar"/>

                </p:column>

                <p:growl id="growl-mensagem" showDetail="true" sticky="true" />
                <p:column headerText="" style="width:25px;">

                    <p:commandButton icon="ui-icon-trash" 
                                     title="Excluir Registro"                                            
                                     ajax="true"
                                     action="#{produtoMB.excluir(produto)}"
                                     update="form-consulta growl-mensagem" />
                </p:column>

            </p:dataTable> 
        </h:form>

My MB class

@ManagedBean
@SessionScoped
@ApplicationScoped
public class ProdutoMB {

private Produto prod = new Produto();
private List<Produto> produtos;
private List<String> imagens;

public void handleFileUpload(FileUploadEvent event) {

    byte[] bimagem = event.getFile().getContents();
    prod.setImagem(bimagem);
    FacesMessage message = new FacesMessage("Succesful", event.getFile().getFileName() + " o arquivo foi carregado.");
    FacesContext.getCurrentInstance().addMessage(null, message);
} 

@PostConstruct
public void init() {
    setProd(new Produto());

    this.produtos = ListaProdutos();

}

public ProdutoMB() {

}

public void Salvar() {

    EntityManager em = factory.getEntityManager();
    em.getTransaction().begin();
    prod.setImagem(prod.getImagem());
    prod.setDescricao(prod.getDescricao());
    prod.setCodigo(prod.getCodigo());
    prod.setData(prod.getData());
    prod.setQuantidade(prod.getQuantidade());
    prod.setMarca(prod.getMarca());
    prod.setPreco(prod.getPreco());
    prod.setStatus(prod.getStatus());

    em.persist(prod);
    em.getTransaction().commit();
    em.close();
    Uteis.MensagemInfo("Registro inserido com sucesso");
    prod = new Produto();
    init();

}



 public List<Produto> ListaProdutos() {
        EntityManager em = factory.getEntityManager();
        List<Produto> arrayProdutoVazio = new ArrayList<Produto>();
        Query query = em.createNamedQuery("Produto.findAll");

        @SuppressWarnings("unchecked")
        Collection<Produto> produtoResultadoDaBusca = (Collection<Produto>) query.getResultList();
        Produto p = null;
        for (Produto pp : produtoResultadoDaBusca) {
            p = new Produto();
            p.setId(p.getId());
            p.setImagem(p.getImagem());
            p.setCodigo(p.getCodigo());
            p.setData(p.getData());
            p.setDescricao(p.getDescricao());
            p.setMarca(p.getMarca());
            p.setPreco(p.getPreco());
            p.setQuantidade(p.getQuantidade());
            p.setStatus(p.getStatus());
            arrayProdutoVazio.add(pp);
        }
        return arrayProdutoVazio;
    }

    private Produto GetProduto(long id) {
        EntityManager em = factory.getEntityManager();
        return em.find(Produto.class, id);
    }

    public void alterar(Produto produto) {
        EntityManager em = factory.getEntityManager();
        em.getTransaction().begin();
        this.GetProduto(prod.getId());
        prod.setCodigo(prod.getCodigo());
        prod.setImagem(prod.getImagem());
        prod.setData(prod.getData());
        prod.setDescricao(prod.getDescricao());
        prod.setMarca(prod.getMarca());
        prod.setQuantidade(prod.getQuantidade());
        prod.setPreco(prod.getPreco());
        prod.setStatus(prod.getStatus());
        em.merge(prod);
        em.flush();
        em.getTransaction().commit();
        em.close();
        this.init();
    }

    public void editar(Produto prod) {

        this.prod = prod;
    }

    public void excluir(Produto pro) {
        EntityManager em = factory.getEntityManager();
        em.getTransaction().begin();
        em.find(Produto.class, pro.getId());
        em.remove(em.getReference(Produto.class, pro.getId()));
        em.getTransaction().commit();
        em.close();
        Uteis.MensagemInfo("Registro Excluído com sucesso");
        this.init();
    }

    public Produto getProd() {
        return prod;
    }

    public void setProd(Produto prod) {
        this.prod = prod;
    }

    public List<Produto> getProdutos() {
        return produtos;
    }

    public List<String> getImagens() {
        return imagens;
    }

    public void setImagens(List<String> imagens) {
        this.imagens = imagens;
    }
No answers

Browser other questions tagged

You are not signed in. Login or sign up in order to post.