2012-02-20 93 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