Java 从数据库中检索图像并显示在标签中
我有一张图片名为Java 从数据库中检索图像并显示在标签中,java,mysql,sql,database,sqlexception,Java,Mysql,Sql,Database,Sqlexception,我有一张图片名为P100.jpg。我正在调整它的大小,并将其转换为ZP100.png。我通过插入查询将其存储到数据库MySQL中 File imageFile = new File("F:\\POSTERS\\Roses\\ZP100.png"); FileInputStream fis = new FileInputStream(imageFile); String insertImage = "insert into image values(?,?)";
P100.jpg
。我正在调整它的大小,并将其转换为ZP100.png
。我通过插入查询将其存储到数据库MySQL中
File imageFile = new File("F:\\POSTERS\\Roses\\ZP100.png");
FileInputStream fis = new FileInputStream(imageFile);
String insertImage = "insert into image values(?,?)";
prestmt = con.prepareStatement(insertImage);
prestmt.setInt(1,4);
prestmt.setBinaryStream(2, fis, fis.available());
result = prestmt.executeUpdate();
现在,我想检索该图像并通过将其指定给标签显示在表单上
String selectImage = "select img from image";
prestmt = con.prepareStatement(selectImage);
但这给了我一个例外
java.sql.SQLException: Can not issue executeUpdate() for SELECTs
对于将图像指定给标签,我有:
image.setText("ZP100.png");
我知道,这是行不通的。请帮我重新编码。第一个错误必须是:
result = prestmt.executeUpdate();
恐怕您已经用类型ResultSet
声明了result
当您分配一个
int
时,返回类型为executeUpdate()
,返回到result
显然会引发
SQLException
修改上述语句如下:
int insertResult = prestmt.executeUpdate();
你应该在这方面取得成功
建议:
预调整逆流(2,fis,fis.available())
如果您想读取流中的内容,请不要依赖于某个方法。
这只是一个估计,并不能保证你可以阅读到流结束
而是使用setBinaryStream
方法的另一个签名,如:
Javadoc说,数据将根据需要从流中读取,直到到达文件末尾。
,这意味着您无需显式读取。
更改后,您的声明将如下所示:
预收缩逆流(2,fis)强>
图像:
我在Java GUI和图像方面做得不多。
但可以建议您参考以下地址的一些解决方案:
任何人都可以帮我。。。。。。