如何从数据库插入图像?

时间:2013-04-05 11:41:12

标签: mysql database image jasper-reports

我希望在 Jaspersoft Studio 的报告中,在详细信息区域中插入来自数据库的图像 JPG图像保存在MySQL中 longblob 类型 imgdata 字段中。
我试图把这个表达式放在Image元素中:

  1. $F{imgdata}
  2. MyUtil.getInputStream($F{imgdata})
  3. 在第一种情况下,我收到此错误:

    net.sf.jasperreports.engine.JRException: net.sf.jasperreports.engine.JRException: Unknown image source class [B
    

    ......第二种情况是这个错误:

    net.sf.jasperreports.engine.JRException:
    net.sf.jasperreports.engine.fill.JRExpressionEvalException: Error
    evaluating expression :  Source text :
    MyUtil.getInputStream($F{imgdata})
    

    我的问题: 如何将数据库中的图像插入到 JasperReports 的报告中?

2 个答案:

答案 0 :(得分:10)

打开.jrxml文件的XML视图。 然后找到与此类似的代码

<field name="image" class="java.lang.Object"/>  
/* "image" must be replaced by your actual field name */

并将其更改为

<field name="image" class="java.io.InputStream"/>

答案 1 :(得分:5)

似乎我自己解决了这个问题。

以下是我完成的步骤:

1)图片报告字段的表达式应为: $ F {imgdata}

(注意: imgdata 是存储图像数据的数据库字段的名称)

2)打开报告的“数据集和查询对话框”,将 imgdata 字段的类型从java.lang.Object更改为 java .io.InputStream 查看截图 ---抱歉,我没有足够的声望点来发布图片)。关闭对话框。

3)切换到Preview-Tab生成报告。现在,您应该在报告中看到图像。