Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从数据库中检索图像并显示在标签中_Java_Mysql_Sql_Database_Sqlexception - Fatal编程技术网

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和图像方面做得不多。
但可以建议您参考以下地址的一些解决方案:


  • 任何人都可以帮我。。。。。。