快速业务通道

JasperReport那些事儿(二)——从对象到XML数据源 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-24

JasperReport那些事儿(二)——从对象到XML数据源

时间:2009-12-15 BlogJava Heis

记得刚学Jasperreport的时候,在谷歌和百度上搜到的大多数入门文章都是教授如何使用数据库来做报表的。对于只采用简单数据集和那些直接面向数据的报表,使用数据库作为数据源是合适的;但是也有很多的报表不是直接面向原始数据的,例如财务报表,都是需要计算和做后续处理;也有一些报表引用的数据粒度小,但是数量多,使用数据库做数据源是不合适的。

XML一直被认为是一种很好的描述结构化数据的语言。

首先XML文件的数据结构非常清晰。可以把报表所需要的数据集成到一个XML文件上,然后再通过在文件内查询,这比每需要一条数据就使用SQL来查询要显得更高效和简单。试想一下,你的同事A告诉你,“报表的数据都在这份XML文件里哦”。而同事B则对你说:”那些数据在某个数据库里,你自己去查吧。“,你更喜欢听到哪一句呢?(当然我的语气上的差别就说明了我的喜好,我老怀疑后者在背向我的那一刻有在奸笑。)

其次,现在对象映射到XML的工具很多。哦?你知道我在暗示什么吗?没错,你可以面向对象,而不用面向丑陋的表格。在上一篇文章中,我给出这样一个数据源。

1 <?xml version="1.0" encoding="utf-8" ?> 2 <NameList> 3 <Person> 4 <Name>强尼</Name> 5 <Gender>男</Gender> 6 <Age>56</Age> 7 </Person> 8 <Person> 9 <Name>阿美</Name> 10 <Gender>女</Gender> 11 <Age>23</Age> 12 </Person> 13 <Person> 14 <Name>李丽</Name> 15 <Gender>女</Gender> 16 <Age>58</Age> 17 </Person> 18 <Person> 19 <Name>杰森</Name> 20 <Gender>男</Gender> 21 <Age>32</Age> 22 </Person> 23 <Person> 24 <Name>刘三</Name> 25 <Gender>男</Gender> 26 <Age>21</Age> 27 </Person> 28 </NameList>

如果你是个典型的面向对象的思考者,应该马上想到一个叫Person的Java类。大概像下面这样。

1 package com.blogjava.heis.jasper.chapter2; 2 3 public class Person { 4 5 private String name; 6 private String gender; 7 private int age; 8 9 private String getName() { 10 return name; 11 } 12 private void setName(String name) { 13 this.name = name; 14 } 15 private String getGender() { 16 return gender; 17 } 18 private void setGender(String gender) { 19 this.gender = gender; 20 } 21 private int getAge() { 22 return age; 23 } 24 private void setAge(int age) { 25 this.age = age; 26 } 27 }

JasperReport那些事儿(二)——从对象到XML数据源(2)

时间:2009-12-15 BlogJava Heis

想像一下,把一个个对象排着队跳进模板,然后一张完整的报表就出来了,不用管那些烦人的Sql,那应该是多么美好的一件事儿。面向对象果然是我们的福音。接下来看看我们如何把对象转换成XML文件。

package com.blogjava.heis.jasper.chapter2;

import java.io.File; import java.io.FileWriter; import java.io.StringWriter; import java.util.ArrayList; import org.apache.commons.betwixt.io.BeanWriter; public class BeanToXMLConverter { private final static String FILE_PATH="c:/test.xml"; /** * Create an example bean and then convert it to xml. */ public sta

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号