2013-06-21 3 views
0

Я пытаюсь извлечь тип данных blob из таблицы базы данных и отобразить изображение в изображенииView. Вот мой запрос SQL:Convert BufferedImage to Image data type

public boolean retrieve(){ 
boolean success = false; 
ResultSet rs = null; 
DBController db = new DBController(); 
db.getConnection();  
String dbQuery = "SELECT * FROM sm_product WHERE productName ='" + name +"'";  
rs = db.readRequest(dbQuery); 
try { 
    if(rs.next()){ 
     desc = rs.getString("productDescription"); 
     price = rs.getInt("productPrice"); 
     quantity = rs.getInt("productQuantity"); 
     dateStr = rs.getString("dateOfCreation"); 
        category = rs.getString("productCategory");  

        Blob blob = rs.getBlob("productImage"); 
        byte[] data = blob.getBytes(0, (int) blob.length()); 
        image = ImageIO.read(new ByteArrayInputStream(data)); //Error here 
        success = true; 
    } 
} 
catch(Exception e){ 
    e.printStackTrace(); 
} 
db.terminate(); 
return success; 
} 

После того, как я получил его, я хочу отобразить его в изображении. Вот код:

panel.getMyImageView().setImage(product.getImage()); 

Однако у меня возникло сообщение об ошибке несовместимого типа. Я знаю image = ImageIO.read (новый ByteArrayInputStream (данные)); эта строка должна храниться как BufferedImage, а затем оттуда я медленно конвертирую в тип данных изображения и отображаю его в виде изображения. Но после 2 часов исследований мне не повезло. Может кто-нибудь, пожалуйста, помогите мне с этим?

Заранее спасибо.

ответ

0
Toolkit.getDefaultToolkit().createImage(data) 

Вызов этого для массива байт считывается из двоичных объектов

+0

Спасибо. Я решил это с другим решением –