我正在尝试从数据库表中检索blob数据类型,并在imageView中显示图像。这是我的选择SQL语句:
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;
}
检索后,我想在imageview中显示它。这是代码:
panel.getMyImageView().setImage(product.getImage());
但是,我收到了不兼容的类型错误消息。我知道image = ImageIO.read(new ByteArrayInputStream(data));该行应该存储为BufferedImage,然后从那里我慢慢转换为image数据类型并在图像视图中显示。但经过2个小时的研究,我没有运气。有人可以帮我吗?
提前致谢。
答案 0 :(得分:0)
Toolkit.getDefaultToolkit().createImage(data)
为从blob
读取的字节数组调用此方法