我尝试过各种不同的方法,我从其他问题中读到这些方法,但似乎没有一种方法适合我......
我使用NetBeans 7.4作为前端,使用Sqlite作为Backend,iReport 5.5
我正在制作大学ic-ards,其中我希望从数据库中取出照片,在数据库中,图像存储为blob,我将它们存储为字节..
我的要求是从ICard数据库获取学生图像所以我可以打印它们。
以下是我用于将图像插入数据库的代码
File image= new File(logPath2);
FileInputStream fis=new FileInputStream(image);
ByteArrayOutputStream bos=new ByteArrayOutputStream();
byte buf[]=new byte[1024];
for(int readNum;(readNum=fis.read(buf))!=-1; ) {
bos.write(buf,0,readNum);
}
person_image=bos.toByteArray();
我已经尝试了各种图像表达式和类表达式,但似乎没有工作..
请注意我说的是sqlite,我知道用mysql做的方法但sqlite,它不能渲染。但我不想从sqlite转移到mysql。
我得到的错误是
Error filling print... Unable to get value for field 'Photo' of class 'java.io.InputStream' net.sf.jasperreports.engine.JRException: Unable to get value for field 'Photo' of class 'java.io.InputStream' at net.sf.jasperreports.engine.JRResultSetDataSource.getFieldValue(JRResultSetDataSource.java:319) at net.sf.jasperreports.engine.fill.JRFillDataset.setOldValues(JRFillDataset.java:1356) at net.sf.jasperreports.engine.fill.JRFillDataset.next(JRFillDataset.java:1257) at net.sf.jasperreports.engine.fill.JRFillDataset.next(JRFillDataset.java:1233) –