使用PostgreSql在Ireports中显示图像

使用PostgreSql在Ireports中显示图像,第1张

概述我试图将图像从PostgreSQL数据库加载到jaspersoft ireports(4.0),但我收到一个错误. 在PostgreSQL中,图像存储为bytea对象.在ireports中,我将image字段的属性更改为java.io.InputStream. 将图像放入报表后,设置了以下属性: 表达式类:java.io.InputStream 图像表达:图像字段 我还尝试了this教程在irep 我试图将图像从Postgresql数据库加载到jaspersoft ireports(4.0),但我收到一个错误.

在Postgresql中,图像存储为bytea对象.在ireports中,我将image字段的属性更改为java.io.inputStream.

将图像放入报表后,设置了以下属性:

表达式类:java.io.inputStream
图像表达:图像字段

我还尝试了this教程在ireport中显示blob图像.

显示以下错误:

Error filling print... Image read Failed. Setting up the file resolver... net.sf.jasperreports.engine.JRException: Image read Failed.     at net.sf.jasperreports.engine.util.JRJdk14ImageReader.readImage(JRJdk14ImageReader.java:73)     at net.sf.jasperreports.engine.util.jrimageLoader.loadImage(jrimageLoader.java:245)     at net.sf.jasperreports.engine.jrimageRenderer.getimage(jrimageRenderer.java:476)     at net.sf.jasperreports.engine.jrimageRenderer.getDimension(jrimageRenderer.java:512)     at net.sf.jasperreports.engine.fill.JRFillimage.fitimage(JRFillimage.java:1251)     at net.sf.jasperreports.engine.fill.JRFillimage.prepare(JRFillimage.java:1173)     at net.sf.jasperreports.engine.fill.JRFillElementContainer.prepareElements(JRFillElementContainer.java:329)     at net.sf.jasperreports.engine.fill.JRFillBand.fill(JRFillBand.java:419)     at net.sf.jasperreports.engine.fill.JRFillBand.fill(JRFillBand.java:378)     at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillColumnBand(JRVerticalFiller.java:2038)     at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillDetail(JRVerticalFiller.java:760)     at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportStart(JRVerticalFiller.java:270)     at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:128)     at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:946)     at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:845)     at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:58)     at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:417)     at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:247)     at com.jaspersoft.ireport.designer.compiler.IReportCompiler.run(IReportCompiler.java:877)     at org.openIDe.util.RequestProcessor$Task.run(RequestProcessor.java:572)     at org.openIDe.util.RequestProcessor$Processor.run(RequestProcessor.java:997) Print not filled. Try to use an EmptyDataSource...
解决方法 在Postgresql中,bytea类型不是BLOB,并且您不能使用流.在sql标准术语中,它是一个字节字符串.它应该加载到Java中的字节数组.

如果要在Postgresql中使用BLOB技术,则必须使用大对象功能.

http://www.postgresql.org/docs/current/interactive/largeobjects.html

总结

以上是内存溢出为你收集整理的使用PostgreSql在Ireports中显示图像全部内容,希望文章能够帮你解决使用PostgreSql在Ireports中显示图像所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/1160978.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存