无法从 Mysql blob 列获取图像



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

我希望这对你有所帮助。

最新更新