我无法从Mysql数据库中的blob列获取jlabel图像。这是我的代码:
pst = con.prepareStatement("SELECT `profilepic` FROM `librarian` WHERE `username` = `Tharindu`");
rs = pst.executeQuery();
BufferedImage im = ImageIO.read(rs.getBinaryStream(1));
ImageIcon image = new ImageIcon(im);
jlabelpic.setIcon(image);
例外:
java.sql.SqlException: Before start of result set
如何添加图片?
答案 0 :(得分:0)
您面临的问题不是图像的实际加载,而是从数据库中检索图像。要指向结果集的右侧行,首先需要调用rs.next();
将指针移动到下一行,因为最初指针位于行#34; -1"中,所以恰好在你的行之前结果集。
有关它的更多信息,这篇文章可能也会有所帮助:java.sql.SQLException: Before start of result set
作为代码,它可能看起来像这样:
pst = con.prepareStatement("SELECT `profilepic` FROM `librarian` WHERE `username` = `Tharindu`");
rs = pst.executeQuery();
if(rs.next()){
BufferedImage im = ImageIO.read(rs.getBinaryStream(1));
ImageIcon image = new ImageIcon(im);
jlabelpic.setIcon(image);
}
我希望这会对你有所帮助。