Vì bạn đã sử dụng preparedstatement.setBlob(1, InputStream);
để lưu trữ hình ảnh, tôi phải giả định rằng bạn đã lưu trữ tệp / định dạng hình ảnh vật lý chứ không chỉ dữ liệu pixel.
Bạn cần đọc lại định dạng hình ảnh này và chuyển đổi sang định dạng hình ảnh được hỗ trợ cho Swing / Java.
Bắt đầu bằng cách lấy Blob
tham chiếu đến trường cơ sở dữ liệu ...
Blob blob = rs.getBlob(1);
Sau khi bạn có Blob
, bạn có thể sử dụng nó là nhị phân InputStream
và đọc dữ liệu ...
BufferedImage image = null;
try (InputStream is = blob.getBinaryStream()) {
image = ImageIO.read(is);
} catch (IOException exp) {
exp.printStackTrace();
}
Bây giờ, bạn có thể đặt nó thành ImageIcon
sử dụng new ImageIcon(image)
và đặt cái này trong mô hình bảng của bạn ...