Galera, eu tenho uma tabela chamada produtos… ( ID, PRODUTO, IMAGEM )
Consegui fazer o input das informações e da imagem, porem estou tendo dificuldade de recuperar a imagem do banco conforme o Id do produto!
Como posso resolver esse problema sem utilizar Servlets?! :?:
8)Segue o que estou tentando fazer… 8)
PRODUCT.JSP
<f:view>
<h:outputText value="The Products" /> <h1/>
<h:dataTable border="1" var="item" value="#{ProductFace.products}" >
<h:column>
<f:facet name="header">
<h:outputText value="ID DO PRODUTO"/>
</f:facet>
<h:outputText value="#{item.id_Product}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="NOME DO PRODUTO"/>
</f:facet>
<h:outputText value="#{item.nameProduct}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="IMAGEM"/>
</f:facet>
<h:graphicImage value="#{item.imagem2}" style="width: 65px; height: 55px;"/>
</h:column>
</h:dataTable>
</f:view>
ENTIDADE PRODUCT
public class Product implements java.io.Serializable {
private Integer id_Product;
private String NameProduct;
private File imagem; // Input da Imagem no Banco
private BufferedImage imagem2; // Recupera Imagem do Banco
public Product() {
}
public String getNameProduct() {
return NameProduct;
}
public void setNameProduct(String NameProduct) {
this.NameProduct = NameProduct;
}
public Integer getId_Product() {
return id_Product;
}
public void setId_Product(Integer id_Product) {
this.id_Product = id_Product;
}
public File getImagem() {
return imagem;
}
public void setImagem(File imagem) {
this.imagem = imagem;
}
public BufferedImage getImagem2() {
return imagem2;
}
public void setImagem2(BufferedImage imagem2) {
this.imagem2 = imagem2;
}
}
DAO do Produto
import br.com.classes.Connector;
import br.com.classes.Product;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.LinkedList;
import java.util.List;
import java.io.*;
public class ProductDAO extends Connector {
public ProductDAO() {
super();
}
[b]// Aqui está add Imagem[/b]
public boolean add(Product prod) throws ClassNotFoundException, SQLException, FileNotFoundException, IOException {
FileInputStream fis = null;
fis = new FileInputStream(prod.getImagem());
PreparedStatement ps = (PreparedStatement) getPreparedStatement("INSERT INTO DBAPRENDIZ.PRODUCT (NameProduct, Imagem) values ( ?, ?)");
ps.setString(1, prod.getNameProduct());
ps.setBinaryStream(2, fis, (int) prod.getImagem().length());
int toReturn = ps.executeUpdate();
ps.close();
return toReturn > 0;
}
public List<Product> getAllProducts() throws ClassNotFoundException, SQLException, IOException {
List<Product> toReturn = new LinkedList<Product>();
PreparedStatement ps = (PreparedStatement) getPreparedStatement("SELECT * FROM DBAPRENDIZ.PRODUCT ");
ResultSet rs = ps.executeQuery();
while (rs.next()) {
Product prod = new Product();
popularProd(prod, rs);
toReturn.add(prod);
}
rs.close();
closeAll();
return toReturn;
}
public void popularProd(Product prod, ResultSet rs) throws SQLException, IOException {
prod.setId_Product(rs.getInt("id_Product"));
prod.setNameProduct(rs.getString("NameProduct"));
[b]/// Como Recuperar a Imagem da Base de Dados aqui [/b]
}
}
Dificuldade está sendo na hora de recuperar a imagem da base!
Como posso fazer?! :?:
vlw