无法从Mysql blob列获取图像

时间:2018-05-13 01:29:21

标签: sql image netbeans

我无法从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

如何添加图片?

1 个答案:

答案 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);
}

我希望这会对你有所帮助。