如何从数据库插入图像?

如何从数据库插入图像?

问题描述:

我想从我的报告中的数据库中详细插入图像Jaspersoft Studio
JPG格式的图像保存在MySQL中的字段imgdata类型longblob
I`v试图把这种表情在图像元素:如何从数据库插入图像?

  1. $F{imgdata}
  2. MyUtil.getInputStream($F{imgdata})

在第一种情况下,我得到这个错误:

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的报告?

+0

可能[在使用PostgreSQL Ireports显示图像](http://stackoverflow.com/q/8430313/876298)交帮助你 – 2013-04-05 13:59:11

+0

'imgdata'字段的类型是什么(在你的* jrxml *文件中)? – 2013-04-05 14:04:53

看来我自己解决了这个问题。

这里是I`v完成的步骤:

1)图像报告领域的表述应该是:$ F {} imgdata

(注:imgdata是名其中图像数据存储在数据库领域)

2)打开报表的“数据集和查询对话框”,改变了imgdata场的类类型来回m java.lang.Object到java.io.InputStream 查看屏幕截图 ---对不起,我没有足够的信誉点来发布图片)。关闭对话框。

3)通过切换到预览选项卡生成报告。现在,您应该可以在报告中看到图片。

打开.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"/>