我无法从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
如何添加图像?
您面临的问题不是图像的实际加载,而是从数据库中检索图像。要指向结果集的右行,您首先需要调用rs.next();
将指针移动到下一行,因为最初指针位于行"-1"中,因此就在结果集之前。
有关它的更多信息,这篇文章也可能有所帮助:java.sql.SQLException:在结果集开始之前
作为代码,它可能看起来像这样:
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);
}
我希望这对你有所帮助。