Quantcast
Channel: GUJ - Tópicos com a tag java
Viewing all articles
Browse latest Browse all 17410

Recuperar Produtos com imagens(BLOB) de uma classe DAO na servlet e jogar para o JSP[RESOLVIDO]

$
0
0

@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

Ler tópico completo


Viewing all articles
Browse latest Browse all 17410

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>