Recuperar Imagem do Banco de dados no JFrame[RESOLVIDO]

Boa noite.

Estou apenas fazendo testes, com objetivo em adicionar uma imagem ao banco de dados Mysql utilizando um campo blob. A inserção foi blz. Porém queria visualizar a imagem em uma tela Jframe. Fiz um teste de listar a imagem para ver como fica o valor através do System.out.printnln(). Voltou Isto: [b][B@1787038[/b]. Isso já era esperado. Mas agora queria visualizar a imagem pelo Jframe (Criando o Jframe no Netbeans Claro!) Estou iniciando agora esse esquema de imagem em bd.
A seguir e mostrado o codigo que insere a imagem na tabela mypicture:

import com.mysql.jdbc.Connection;
import com.mysql.jdbc.Connection;
import com.mysql.jdbc.PreparedStatement;
import java.io.File;
import java.io.FileInputStream;
import java.sql.DriverManager;
import java.sql.ResultSet;


public class InsereImagem {
    public static void main(String[] args){
        Connection con = null;
        ResultSet rs = null;
        PreparedStatement stmt = null;
        FileInputStream fis;
        
        try
        {
            Class.forName("com.mysql.jdbc.Driver").newInstance();
            con = (Connection) DriverManager.getConnection(
                    "jdbc:mysql://localhost/imagem", "root", ""
                  );
            File image = new File("D:/foto_thiago.jpg");
            stmt = (PreparedStatement) con.prepareStatement(
                    "insert into mypictures (name, photo) values (?, ?)");
            stmt.setString(1, "FOTO_THIAGO");
            
            fis = new FileInputStream(image);
            stmt.setBinaryStream(2, fis, image.length());
            int s = stmt.executeUpdate();
            
            if (s > 0)
                System.out.println("Inserido!");
            else
                System.out.println("Problemas!");
        }
        catch(Exception e)
        {
            System.out.println("Found some error : "+e.getMessage());
        }
        
        
    }
}

Lá vai o código que "“mostra a imagem”:

import com.mysql.jdbc.Blob;
import com.mysql.jdbc.Connection;
import com.mysql.jdbc.PreparedStatement;
import java.sql.DriverManager;
import java.sql.ResultSet;


public class ListaImagem {
    public static void main(String[] args){
        Blob image = null;
        byte[] imgByte = null ;
        Connection con = null;
        PreparedStatement stmt = null;
        ResultSet rs = null;
        
        try
        {
            Class.forName("com.mysql.jdbc.Driver").newInstance();
            con = (Connection) DriverManager.getConnection(
                    "jdbc:mysql://localhost/imagem", "root", ""
                  );
            stmt = (PreparedStatement) con.prepareStatement(
                    "select photo from mypictures where id=5");
            rs = stmt.executeQuery();
            
            if(rs.next())
            {
                image = (Blob) rs.getBlob("photo");
                imgByte = image.getBytes(1,(int)image.length());
                System.out.println(imgByte);
            }
            else
            {
                System.out.println("Problemas ao listar imagem!");
            }
            
        }
        catch(Exception e)
        {
            
        }
    }
}

E a listagem da imagem é isso na console do netbeans!

run: [B@fa9cf CONSTRUÍDO COM SUCESSO (tempo total: 1 segundo)

Se possivel através deste exemplo, queria a ajuda dos amigos para visualizar tal esquema de imagem em um formulario JFrame!

Só pra reforçar, eu to seguindo tal Link, porém com intenção de utilizar a API de Swing (Apenas pegando a ideia).

http://www.roseindia.net/tutorial/java/jsp/jspdisplayblob.html

Grato desde já!!! :lol:

Se alguem pelo menos tive algum relacionado a isso, ja fico grato!! :smiley:

Coloque a imagem carregada num ImageIcon, depois esse ImageIcon num JLabel. E então o JLabel no seu JFrame.

Valeww ViniGodoy

image = (Blob) rs.getBlob("photo");
                imgByte = image.getBytes(1,(int)image.length());
                System.out.println(imgByte);
                ImageIcon icon = new ImageIcon(imgByte);
                jLabel1.setText("");
                jLabel1.setIcon(icon);

Resolvido!!!

Boa Tarde, gostaria de saber se tiver mais de uma imagem no banco como fazer para recuperar todas?

Obrigado.