2012-02-20 34 views
1

我可以將使用JFileChooser選擇的圖像保存到phpMyAdmin中的MySQL中的BLOB列,但是如何查看該BLOB並將其加載到JFrame中從Java內部顯示?任何代碼都會有幫助。Java查看MYSQL的圖像路徑並在Java技巧中顯示該圖像

+1

你有什麼試過?你怎麼能寫一個blob,但不讀一個? – 2012-02-20 11:33:50

+0

你目前使用哪些代碼? – 2012-02-20 11:36:03

回答

0

這是一個代碼段,它顯示了以blob格式存儲在數據庫中的JLabel對象中的圖片。

Blob sqlphoto = (Blob) rs.getBlob("photo"); 
if (sqlphoto != null) { 
    InputStream photo = sqlphoto.getBinaryStream(); 
    Image image = null; 
    try { 
     image = ImageIO.read(photo); 
     jLabel31.setIcon(new ImageIcon(image)); 
    } 
    catch (IOException ex) { 
     Logger.getLogger(ModifyClerk.class.getName()).log(Level.SEVERE, null, ex); 
    } 

}

+1

如果出現IOException,ImageIcon會是什麼?最後一行在try塊內。 – 2012-02-20 11:46:37

+0

它應該在if塊中。我編輯了我的答案:) – zari 2012-02-20 11:51:52

+0

不,它應該在try塊中。否則,您將構造帶有空映像的ImageIcon,並且會導致NullPointerException。 – 2012-02-20 12:02:13

0

通過德米特里上面列出將解決你的問題的解決方案,這是肯定的。當我是新手程序員時,我習慣於這樣做,但將性能問題存儲在數據庫中並不是一個好主意。最好將圖像文件位置路徑存儲到數據庫中,並將圖像存儲在文件系統中。這將節省您的大量處理並提高您的性能。爲了更好的理解,請閱讀這個精彩的討論

Store image in database Vs File System.

+0

取決於你的應用程序(就像其他的一切)。根據圖像的數量和大小以及它們的使用方式,文件系統或數據庫方式可能會更好地提高性能。通常情況下,性能差異可以忽略不計,而且管理數據更方便。這又取決於你的具體應用。 – Dmitri 2012-03-08 01:00:35