I saved an image in the database and want to display it in a 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;
}