【发布时间】:2012-02-20 11:26:48
【问题描述】:
我可以在 phpMyAdmin 中将使用 JFileChooser 选择的图像保存到 MySQL 中的 BLOB 列,但是如何查看该 BLOB 并将其加载到 JFrame 中以便在 Java 中显示?任何代码都会有所帮助。
【问题讨论】:
-
你试过什么?为什么你可以写一个 blob,但不能读一个?
-
你目前使用的是什么代码?
我可以在 phpMyAdmin 中将使用 JFileChooser 选择的图像保存到 MySQL 中的 BLOB 列,但是如何查看该 BLOB 并将其加载到 JFrame 中以便在 Java 中显示?任何代码都会有所帮助。
【问题讨论】:
从数据库中检索 BLOB 并使用 ImageIO.read 创建一个 BufferedImage
请参阅here了解如何绘制图像。
【讨论】:
Dmitri 上面列出的解决方案可以解决您的问题,这是肯定的。当我是新手程序员时,我曾经有过同样的想法,但是将图像存储在数据库中根本不是一个好主意,因为它们存在性能问题。最好将图像文件位置路径存储到数据库中并将图像存储在文件系统中。这将节省您的大量处理并提高您的性能。为了更好地理解,请阅读这个精彩的讨论
【讨论】:
这是一个代码段,显示 JLabel 对象中的图片,该对象以 blob 格式存储在 DB 中。
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);
}
}
【讨论】: