@Gustavohks2 escreveu:
Bom pessoal, eu sou iniciante em java, estou desenvolvendo meu TCC, e necessito cadastrar produtos e mostrar ele em uma página de produtos cadastrados basicamente.
Por meio de uma classe DAO e uma servlet além da classe modelo, eu insiro o produto com nome, descrição e imagem, no SGBD MYSQL eu defini o tipo da imagem como BLOB e na DAO e no modelo da classe Produto eu coloquei do tipo InputStream, porém não consigo recuperar uma lista de produtos com o nome, a descrição e a imagem, pesquisei semanas na internet, mas nenhum tutorial me serviu.
Segue o código:Classe Produto
public class Produto { private long id; private String nome; private String descricao; private InputStream imagem; public Produto(long id, String nome, String descricao) { this.id = id; this.nome = nome; this.descricao = descricao; } public Produto() {} public long getId() { return id; } public void setId(long id) { this.id = id; } public String getNome() { return nome; } public void setNome(String nome) { this.nome = nome; } public String getDescricao() { return descricao; } public void setDescricao(String descricao) { this.descricao = descricao; } public InputStream getImagem() { return imagem; } public void setImagem(InputStream imagem) { this.imagem = imagem; } }
Classe ProdutoDAO
public class ProdutoDAO { private Connection connection = null; public ProdutoDAO() { this.connection = new ConnectionFactory().getConnection(); } public void insert(Produto produto) { String sql = "INSERT INTO produto(nome, descricao, imagem) " + "VALUES(?, ?, ?)"; try { PreparedStatement pstm = this.connection.prepareStatement(sql); pstm.setString(1, produto.getNome()); pstm.setString(2, produto.getDescricao()); if(produto.getImagem() != null) { pstm.setBlob(3, produto.getImagem()); } pstm.execute(); pstm.close(); }catch(SQLException e) { System.out.println("Erro no banco de dados: "+e); throw new RuntimeException(e); } } public List<Produto> getList() { List<Produto> produtos = new ArrayList(); try { PreparedStatement pstm = this.connection.prepareStatement( "SELECT * FROM produto"); ResultSet rs = pstm.executeQuery(); while(rs.next()) { Produto produto = new Produto(); produto.setId(rs.getLong("id")); produto.setNome(rs.getString("nome")); produto.setDescricao(rs.getString("descricao")); produto.setImagem(rs.getBlob("imagem").getBinaryStream()); produtos.add(produto); } pstm.close(); rs.close(); return produtos; }catch(SQLException e) { System.out.println("Erro no banco de dados: "+e); throw new RuntimeException(e); } } }
Como faço para processar a imagem do tipo InputStream e jogar na página JSP?
Mensagens: 3
Participantes: 2