Recuperar imagem do banco de dados

Em meu projeto possuo um tela de consulta onde são informados os dados cadastrados e uma imagem. Essa imagem também é incluída no banco. O tipo de dado na tabela do banco é VARCHAR e na inclusão a imagem é salva com um Array de Bytes. Até aí tudo certo até porque consigo salvar a imagem no banco e ela fica assim na tabela ([B@507e5290)!

O problema tá sendo na hora de consultar. Estou utilizando ByteArrayInputStream dentro do método ImageIO.read, porém, sempre retorna nulo! Vou deixar o trecho de código que utilizo para buscar a imagem, se puderem me ajudar fico agradecido!

BufferedImage byteImgVeic = ImageIO.read(new ByteArrayInputStream(rs.getBytes(“IMGVEIC”)));
BufferedImage imgVeic = new BufferedImage(270, 148, byteImgVeic.getType());
Graphics2D g2D = imgVeic.createGraphics();
AffineTransform at = AffineTransform.getScaleInstance((double) 270 / byteImgVeic.getWidth(), (double) 148 / byteImgVeic.getHeight());
g2D.drawRenderedImage(byteImgVeic, at);
lblImgVeicBanco.setIcon(new ImageIcon(imgVeic));
picImgVeiculo.add(lblImgVeicBanco);

Se no banco é VARCHAR, então essa coluna vai receber objetos do tipo String.
Sua imagem é um byte[] então a coluna deverá ser do tipo BLOB.

O conteúdo [B@507e5290 nada mais é do que o retorno do método toString() do seu objeto do tipo byte[].

1 curtida