我与MySQL数据库有连接,并尝试解决从数据库提取的blob(图像)无法正确呈现为JDialog时出现的问题(请参阅截图)。注:我有多个图像(大小〜50-60 Kb),其中一些显示正确(完整),但其中一些显示未完全加载。我试图重新保存并将图像插入到MySQL中,但问题仍然存在。从MySQL中提取Blob并将其放入JDialog
任何想法?
我的代码是:
MenuItemPhoto.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent ae) {
try {
String sql = "select photo from RDSSPhoto where id ='38'";
pst = conn.prepareStatement(sql);
rs = pst.executeQuery();
if (rs.next()) {
byte[] imagedata = rs.getBytes("photo");
format = new ImageIcon(imagedata);
JOptionPane pane = new JOptionPane((Frame) null, JOptionPane.PLAIN_MESSAGE, JOptionPane.DEFAULT_OPTION);
JDialog d = pane.createDialog((Frame) null, "Photo");
pane.setIcon(format);
if (!d.isVisible()) {
d.setLocationRelativeTo(RDSSView.this);
d.pack();
}
d.setVisible(true);
}
} catch (Exception e) {
e.printStackTrace();
}
}
});
你没有说你正在使用的是哪个版本的MySQL,但是加载图像的应用程序或MySQL对BLOB的大小有限制。 –
版本5.1.36,引擎MyISAM –