基于Jasper的报表管理平台设计与实现硕士学位论文.doc_第1页
基于Jasper的报表管理平台设计与实现硕士学位论文.doc_第2页
基于Jasper的报表管理平台设计与实现硕士学位论文.doc_第3页
基于Jasper的报表管理平台设计与实现硕士学位论文.doc_第4页
基于Jasper的报表管理平台设计与实现硕士学位论文.doc_第5页
已阅读5页,还剩66页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

浙江大学硕士学位论文 摘要基于jasper的报表管理平台设计与实现摘要报表管理系统是企业管理维护报表,研究业务需求的主要解决方案,它可以直观有效地为企业提供报表日常维护、需求动态分析、战略研究部署等相关的功能,是企业决策的来源。对于企业来说,管理报表的过程就是获取企业基本信息和实时动态,认清自我的优势和劣势,寻求企业精心策划和可靠战略部署的过程。所以说,报表管理是企业日常管理当中非常重要的一个环节,时刻影响着企业的规划和运营。本文主要完成了基于jasper技术的报表管理平台的设计与实现,描述了课题的背景和意义、研究的现状以及存在的问题,通过对报表管理平台相关技术的综述与比较,最终确定了以jasper报表引擎、spring、springmvc框架、velocity模板引擎、ibatis框架和mysql数据库等内容作为系统的主要设计实现技术。本文设计和实现了在mvc框架基础上的报表管理平台的业务流程和技术框架,技术框架的视图层采用了velocity、css和jsp技术相结合的界面,业务模块采用了jasper技术、spring和springmvc框架来设计和实现各种业务逻辑,持久层采用了jdbc、spring dao和ibatis框架来处理各种数据,数据库采用mysql,并结合对jasper报表引擎处理报表模板文件流程的代码分析,设计和实现了报表管理平台的系统集成以及用户角色管理、数据源管理、报表管理等具体功能模块。报表管理平台的主要功能是管理和运行报表模板,产生和展示报表结果。用户可以使用管理员角色或者普通用户角色,在报表列表界面管理报表模板并且运行查看报表数据。本系统的优势在于结合开源组件,维护费用低,易于管理,以及报表处理能力比较强。关键词:报表管理平台,jasperreports,springmvc,velocity,ibatisi浙江大学硕士学位论文 abstractabstractreport management system is the main solution for enterprise to manage and maintain reports, research business requirements. it can provide enterprises with reports of routine maintenance, the demand for dynamic analysis, deployment of strategic research and other related functions intuitively and effectively, and it is the source of business decisions. for businesses, the report management process is to get the basic information and real-time dynamic, to recognize the advantages and disadvantages of self, seeking enterprise careful planning and reliable strategic plan. so, report management is a very important part of the enterprises daily management, always influences the planning and running of the enterprise.this thesis based on the technology of jasper mainly completed the design and implementation of the report management platform, described the background and significance of the topic, research status and existing problems, reviewed and compared the report management platform related technology, and finally confirmed to use jasper report engine, spring, the springmvc framework, velocity template engine, ibatis framework, and mysql database to design and implement this system.this thesis designed and implemented the business process and technical framework about the report management platform based on the mvc framework, technical framework for the view layer using the interface combined velocity, css and jsp technology, the business modules using jasper, spring, and springmvc framework to design and implement a variety of business logic, the persistence layer using jdbc, spring dao and ibatis framework to deal with all kinds of data, and using the mysql database, combined with the code analysis process about the jasper report engine processing report template file, designed and implemented report management platform system integration, user and role management, data source management, report management, and other specific functional modules.the main function of report management platform is to manage and run the report template, to generate and display the report results. users can use the administrator role or normal user role, management the report templates, run and view the report data in the list of reports interface. the advantages of this system includethe combination of open source components, low maintenance costs, easy to manage, and strong report processing ability.key words:report management platform, jasperreports, springmvc, velocity, ibatisii浙江大学硕士学位论文 目录目录摘要iabstractii目录iv图目录vi表目录viii第1章 绪论11.1 课题背景和意义11.2 研究现状与存在的问题11.3 论文的主要内容和特色31.4 论文组织结构41.5 本章小结5第2章 报表管理平台的技术综述62.1 报表管理平台相关技术描述62.2 jasperreports工具的技术综述62.2.1 jasperreports工具的工作原理62.2.2 jasperreports的特点72.3 mvc框架技术综述72.3.1 mvc72.3.2 struts282.3.3 springmvc82.4 表现层技术综述92.4.1 jsp综述92.4.2 freemarker模板引擎综述102.4.3 velocity模板引擎综述102.5 mysql综述122.5.1 mysql122.5.2 mysql的特性122.5.3 mysql的应用122.6 持久层框架综述132.6.1 hibernate框架综述132.6.2 ibatis框架综述132.7 本章小结16第3章 报表管理平台架构设计173.1 平台架构设计的概述173.2 平台的业务流程设计173.3 平台的技术框架设计203.3.1 view层213.3.2 controller层233.3.3 model层243.3.4 database service层243.4 本章小结25第4章 报表管理平台的实现264.1 平台实现的概述264.2 平台的系统架构实现264.2.1 模型层264.2.2 视图层294.2.3 控制器层324.2.4 具体实例334.3 jasper报表引擎分析354.3.1 jasper报表产生流程354.3.2 jasper报表引擎的主要步骤364.3.3 报表编译相关的类和接口分析374.3.4 报表引擎的数据源分析384.3.5 报表引擎的输出格式384.4 基于jasper的报表管理系统集成384.5 平台的功能模块实现404.5.1 总体功能模块404.5.2 用户管理模块实现414.5.3 角色管理模块实现434.5.4 数据源管理模块实现454.5.5 报表管理模块实现464.6 本章小结50第5章 报表输出格式的多样化525.1 html格式报表输出525.2 xls格式报表输出545.3 本章小结56第6章 总结与展望576.1 论文主要工作概述576.2 未来工作展望58参考文献60作者简历62致谢63vii浙江大学硕士学位论文 图目录图目录图2.1 mvc设计模式图7图2.2 struts2框架处理流程图8图2.3 velocity工作原理图11图2.4 ibatis框架的原理图14图2.5 jdbc与ibatis程序框架比较图15图3.1 报表管理平台的整体业务功能图18图3.2 报表管理平台技术框架设计图21图3.3 报表管理平台整体界面22图4.1 sqlmapconfig的配置代码27图4.2 事务管理配置信息29图4.3 数据源配置信息29图4.4 sqlmapclient配置信息29图4.5 用户管理的vm视图代码31图4.6 界面实现代码31图4.7 分发器dispatcherservlet配置信息33图4.8 跳转至添加页面代码33图4.9 viewresolver配置信息34图4.10 数据源添加界面34图4.11 保存数据源信息代码35图4.12 addorupdate方法代码35图4.13 jasperreports流程图36图4.14 基于jasper的报表管理平台集成图39图4.15 系统功能模块结构图40图4.16 用户管理流程图42图4.17 用户管理功能实现截图43图4.18 增加用户功能图43图4.19 角色管理功能实现截图44图4.20 角色编辑功能图44图4.21 jdbc连接配置信息45图4.22 数据源管理实现截图46图4.23 报表模板管理流程图47图4.24 报表管理实现截图47图4.25 产生报表的方法48图4.26 获取报表模板文件49图4.27 报表的解析、编译、填充和输出49图4.28 输出格式为pdf的报表样例50图5.1 ireport报表模板52图5.2 输出html的源码53图5.3 输出格式为html的报表样例53图5.4 配置imageservlet54图5.5 输出excel的源码55图5.6 输出格式为xls的报表样55x浙江大学硕士学位论文 表目录表目录表4.1 sqlmap.xml文件及其作用27表4.2 报表模型数据dao接口28表4.3 功能模块和velocity模板的关系30表4.4 报表管理平台的主要控制器类32表4.5 jasperreports编译时的类和接口功能37表4.6 jrdatasource接口的实现方法38表4.7 报表输出类38浙江大学硕士学位论文第1章 绪论第1章 绪论1.1 课题背景和意义在没有计算机以前,数据的保存方式多数依靠纸张文件,基本使用手工来完成数据的处理,手工实现报表的编制。而随着当今世界上使用计算机应用的频率变得更加普遍,人们也更加习惯于使用计算机以及计算机软件实现数据的处理,使用数据库系统实现数据的管理,使用应用程序实现具体的业务的操作与完成,报表的编制也通过使用软件来实现。这样可以完成报表制作工作的软件称为报表工具,它的产生改变了原来的报表制作方式,对各个行业各个领域都产生了深远的影响。报表在企业进行管理时拥有比较大的作用,它是企业的业务要求,更是企业进行战略部署的基石。报表能够完全表现企业的运营情况,它是企业审查自我,改进自我的利器,是强大的驱动力1。报表技术的发展对当今社会的发展起到了长足的推动作用。报表的本质是对数据的抽象和概括,它使用一种比原始数据本身抽象性和概括性更高、规律性更强、更容易被人理解和控制的形式来描述和展示数量巨大的、无序的原始数据集合2。在实际生活和工作中,我们需要处理的数据往往是大量的,一般的传统手工处理方式无论从数据量还是从处理速度上来讲,都无法满足高速、高效和大数据量的要求。为了能够帮助用户更好地利用现有数据库,快速高效地管理各类报表模板,准确方便地获取、汇总、分析并挖掘各种报表数据,更好地为决策者提供依据,报表管理平台是基于以上目标而得到的理想解决方案。报表管理平台能够提供丰富的报表展示、敏捷的布局手段,为企业级数据分析与智能分析提供高性能、高效率的报表系统解决方案,企业通过报表管理平台获取分析数据,预测未来行业的发展趋势,实现灵活管理和实施重大决策3。1.2 研究现状与存在的问题目前在国内的报表市场上有很多功能不一但都有各自专长的报表工具,对它们进行对比和研究,可以让我们取长补短,设计出更有优势的报表管理系统。从各个报表工具的介绍来看,它们的功能有很大一部分是重复的,我们可以了解和区分各个报表工具的实现机制和具体效果以确定这个报表工具是否符合实际应用需求。通过对国内外市场上表现不错并且具有一定代表性的几个产品来做一个深入的比较,像crystal report、actuate、润乾报表、jasper report等,我们可以通过上述产品的特性进一步地了解它们。1、crystal reportcrystal report使用广泛,在各个领域、各种规模的应用里都有其存在,但是crystal report的使用费用较高,在java平台上,它通过收取一定费用来为企业服务。crystal report是个封闭性较大的系统,它无法提供很多个性化的应用,集成度也比较差,而且缺乏功能的可扩展性,其在中式报表的表现并不如人意4。2、actuate e.reportactuate作为企业级报表工具,其专业性较强。在国际市场上,actuate报表被广泛用于金融市场、政府部分等较大规模的单位和组织中,拥有比较长的历史。但是,actuate e.report的难用是业内有名的,对使用者有很高的要求,而一般的客户并不是it业界人士,过于复杂的设计只会起到相反的效果。3、润乾报表润乾报表在国内报表市场是后来居上的态势,因为它更加了解国内的报表需求状况,功能上更符合中国式的报表。它的报表模型更加新颖。不同于“表格式”或者“类excel”的报表模型,润乾报表有很多层次感更深的模型。实际上,crystal report等报表处理复杂型的报表难度很高,只能通过编写复杂的sql语句,甚至编写代码来实现。但是润乾报表正是在处理复杂报表上有绝对的优势,它可以运用各种手段,将报表化复杂为简单,提高开发效率。因为润乾报表有着java语言的特性,所以它也可以在各种框架平台上部署和运行5。虽然润乾报表在处理报表的能力上比较突出,功能和性能上都可圈可点,但是它的价格也非常昂贵,开发维护费用高导致它失去了一部分竞争优势,对一些中小型企业来说它并不是最好的选择。润乾报表的外围功能做得较少。其他报表系统上的一些功能,比如权限、用户、门户等功能并没有实现,所以实际上也很难发挥应有的作用和满足客户应用的需要。4、jasperreportsjasperreports作为一个报表解决方案,它能提供的功能非常多,也非常强大,用户通过它可以非常方便地完成报表的定制、设计、预览和生成等步骤。它是用java编写的,与其他报表工具相比较,它的优势体现在以下几个方面6: (1)开放源代码。源代码的开放使开发人员可以更敏捷地开发和实现此报表工具的一些功用以满足项目需求。 (2)功能强大。报表拥有强大的功能,其通过图表的镶嵌,不同线段的使用,数据源连接的多选择性,模板的编译填充和数据的预览输出等功能,无论是复杂繁琐的固定类型报表、子报表,还是其他的报表,都能非常完美地制定和实现,而且因为在开源的情况下,它的功能将会被不断扩展。并且在融合ireport的情况下,它会跳过描写xml的复杂过程,基本实现和完善报表的设计。ireport也是一款开源软件,功能强大,它可以用可视化的方式来设计报表模板,生成的模板文件提供给jasperreports报表工具使用。它的出现,主要是为了降低jasperreports的设计难度,为用户提供可视化的报表设计工具。它采用java编写开发,支持以图形化方式操作xml文件,支持报表预览、报表输出打印功能,支持多种文件格式的报表文件输出,同时支持复杂报表的编辑、设计与运行,例如交叉报表、子报表等,基于jfreechart图表库的集成,可以在表中嵌入图形7。ireport报表设计工具与jasperreports的结合使jasperreports的功能更加完善,表现性能更加出色。 (3)完美支持b/s架构的web环境,因为它的类库使用java编写,而且能够输出打印以及产生多种格式的报表文件,例如pdf、xls、html等。但是如同其他开源软件一样,jasperreports有着它本身的缺陷,缺乏商业公司的技术支持,兼容性不够等问题,因为开放源码的特性,它的安全性得不到保障,而且在开发过程中常常会被一些小问题困扰。1.3 论文的主要内容和特色基于开源软件拥有开放源代码、自由定制并且无需维护费用、易于管理、版本更新快等优点,结合开发项目的实际需求,设计一套基于jasperreports技术的报表管理平台框架,框架使用mvc模式实现,mvc框架有利于系统的扩展、调用以及二次开发。目标是学习jasperreports和mvc技术的相关架构和源代码以及其他相关框架技术,设计平台的功能模块并进行代码开发,最后验证系统的作用和效果。通过对报表管理平台的设计和实现,掌握基本的报表开发环节,真正领会报表开发技术。本文以基于jasper报表管理平台这一项目的设计与实现为基础,其主要内容如下:1. 在基于用户需求的前提下,分析报表管理平台的技术框架。深入分析报表管理平台相关技术的优缺点,根据技术综述,选择所需系统下最适合的平台实现技术框架,对平台的整体业务功能和具体流程进行设计与实现,对视图层采用velocity和jsp技术,业务层采用spring和springmvc框架,数据持久层采用ibatis和dao技术,数据库采用mysql的技术框架进行了设计与实现。2. 分析jasper报表引擎的源代码。报表引擎是报表管理平台的核心,对其各个模块,例如整体流程的设计、编译的步骤、数据源和输出格式的选择等模块进行源代码的分析,有助于了解报表引擎的长处与不足,有利于项目的功能和技术框架设计,有利于项目的完全实现。3. 设计并实现报表管理平台。基于各种业务流程、技术框架的分析设计及报表引擎的源代码分析,根据用户需求和业务流程,实现系统的总体架构以及具体功能模块。基于以上内容设计的报表管理平台拥有以下特点8:1. 具有较高的重用性。报表管理平台采用mvc模式实现系统的职能分工,分层后更有利于组件的重用。如model层、view层都可以独立成一个模块组件,供系统重用。2. 具有较高的灵活性。在mvc模式中,三个层级拥有不同的任务,各自完成自己的逻辑,而当某一个层级发生需求上的改变需要修改时,只需要在这一层中更改代码而不会影响到别的层级代码。3. 具有较强的独立与可维护性。系统的视图部分采用velocity模板技术开发实现,它的优势在于独立于后台组件,并不与业务逻辑层直接进行交互,方便进行维护。1.4 论文组织结构本文主要介绍了基于jasperreports工具的报表管理平台的分析、设计与实现。本文共分为以下六个章节:第一章:绪论。概述了报表管理平台的背景及意义,国内外研究的现状和本文的主要研究内容及其特色。第二章:报表管理平台的技术综述。对平台相关技术进行分析综述,为项目技术框架的设计实现奠定基础。第三章:报表管理平台的总体框架设计。基于对相关技术的综述,设计报表管理平台的整体业务流程和技术框架。第四章:报表管理平台的实现。通过对jasper报表引擎的源代码分析,实现对报表管理平台的集成,并且实现了平台的总体架构和具体功能模块。第五章:报表输出格式多样化。通过对html和xls这两种不同输出格式的报表生成,验证了本系统支持多种格式报表输出的特征。第六章:总结和展望。总结整体项目的设计实现情况,说明论文的主要工作内容,发现其长处与不足,并透过开发过程展望报表管理平台的未来。1.5 本章小结本章主要描述了本文课题的背景和意义,对目前报表工具的研究现状和存在的问题一一进行了整理和分析,总结了论文的主要内容和特色,最后是论文的组织结构。5浙江大学硕士学位论文第2章 报表管理平台的技术综述第2章 报表管理平台的技术综述2.1 报表管理平台相关技术描述本文的报表管理平台基于jasper报表工具,使用了mvc模式,表现层技术以及持久层框架,具体的技术综述如下。2.2 jasperreports工具的技术综述jasperreports报表工具是开源组织的免费软件,它的功能非常强大,例如丰富的页面内容,支持多种文件格式等,也可以通过浏览器对报表文件进行远程访问。2.2.1 jasperreports工具的工作原理一个报表的整个实现过程由四个步骤组成,分别是报表xml文件解析、编译报表设计、报表数据源填充和报表输出。下面讲述这四个过程的主要任务与原理9。(1)xml报表文件解析。jasperreports报表工具默认使用sax版本解析器对xml报表文件进行解析,当然用户也可以使用其他的解析包来完成对xml报表文件的解析工作。(2)jasperdesign报表编译。经过xml报表解析后,xml文件转换成一个jasperdesign对象,此报表文件还需要经过编译才能生成jasper文件。系统通过调用jrcompiler接口,将jasperdesign对象转换成jasperreport对象,生成jasper文件。(3)jasperreports报表数据源填充。在报表编译的基础上,我们需要对jasper文件进行数据源的填充,以便根据数据的不同生成动态的报表。数据一般有多种来源,包括各种数据库,本地或者远程的数据文件等等。在数据填充的过程中,系统会调用jasperfillmanager类,输入jasper文件,输出jrprint文件。(4)jasperprint报表输出打印。最后,jasperprint对象被输出打印,jasperreports拥有比较丰富的输出形式,它可以打印到各种显示器上,也可以输出成各种格式的文件,比如pdf、html、xml等。2.2.2 jasperreports的特点报表管理平台采用的jasperreports工具具有以下特点:(1)jasperreports能够生成多种格式的报表文件,包括excel、html、xml、pdf等格式的报表。(2)jasperreports是开源的免费软件,由java语言编写,使用和维护成本相对其他报表工具来说比较低。(3)jasperreports拥有灵活的报表排版,能够以文本、图形、表格等多种方式显示数据,既可以提高工作效率,又拥有美化的报表界面。(4)jasperreports支持多种数据源,数据来源广泛,更利于扩展。关于报表工具的相关综述已经在前一章有过具体的描述,相对于其他报表工具而言,jasperreports报表引擎具备更加突出的优势,能够满足本系统功能齐全、报表复杂度高、支持格式多、维护成本低的特点。2.3 mvc框架技术综述2.3.1 mvcmvc即model-view-controller10,也叫模型层、视图层、控制层,相对于应用来说,如同输入、处理、输出流程。图2.1是mvc设计模式的功能描述11。图2.1 mvc设计模式图模型作为一个应用对象,具有封装应用程序功能与状态、通知视图改变内容等特点;视图的作用是一方面发送用户的请求给控制器并允许控制器选择视图,一方面获取模型传递的信息,解释模型的状态;控制器一方面可以定义用户输入的具体行为和请求,并通过用户动作映射成模型,让模型反应用户的动作含义,另一方面可以反过来选择视图的相应程序 12。2.3.2 struts2struts2是基于webwork的设计理念而创建的mvc框架,主要依靠拦截器来处理各种用户的请求,使得控制器与servlet api耦合降低,单元的测试性得到增强,也使得项目的开发难度降低,节约成本。而struts2框架大致的处理流程如图2.2所示13。图2.2 struts2框架处理流程图2.3.3 springmvcspringmvc框架也是一个mvc框架,具备mvc框架的一般特性,它的设计是围绕dispatcherservlet展开的,dispatcherservlet负责将请求派发到特定的handler。 springmvc特点springmvc框架14拥有以下技术特点:(1)清晰的角色划分:角色一般可以通过对象实现。角色大致有servlet分发器、控制器、命令对象、验证器、模型对象、表单对象、处理器映射(handler mapping)、视图解析器(view resolver)等。(2)强大而直接的配置方式:基于javabean来配置,一般的框架和软件都能支持它,并且还支持跨多个context的引用。(3)可重用的业务代码:当前的业务代码对象可以被重用为其他的命令或者表单对象,并不需要去扩展或者重写某个特定框架的基类。(4)可定制的绑定和验证:可以将日期或者数字进行可定制的绑定,也可以验证一些定制的错误,保存错误的值。而在其他的一些框架中,想要使用业务对象就必须依靠手动的解析和转换。(5)灵活的model转换:此框架中的map的键/值对和其他各种视图技术的集成会显得更加轻松容易。(6)可定制的本地化和主题解析:无需其他的中间件就能与velocity搭配使用,spring标签库也可以随时随地提供给jsp加载和运用等。通过对struts2框架和springmvc框架的大概比较,我们发现两者都是基于mvc的前段框架,struts2相对于springmvc更重量级一点,springmvc结构更清晰,速度更快,基于本文系统的特点,springmvc框架拥有更大的性能优势,更能满足我们报表系统的需求。2.4 表现层技术综述2.4.1 jsp综述jsp(java server pages)15是一种动态网页技术标准。它是在传统网页html中写入java代码和jsp标记以形成jsp文件。它的应用是跨平台的。 jsp的特点jsp页面是在java虚拟机上执行的,当jsp页面发送请求后,服务器将jsp页面编译成servlet,然后执行并且用html的格式返回结果给用户。相比较其他页面技术,jsp的优势如下:(1)jsp技术能够一次性完成编写;(2)jsp技术支持在不同的系统环境下运行;(3)具备在多台服务器上平均负载的能力,拥有较强的可伸缩性;(4)支持jsp技术的开发工具比较多,功能也比较强大。但是在mvc框架下,jsp内部或许会被用来填写java代码,极有可能造成mvc的结构不完整16。2.4.2 freemarker模板引擎综述freemarker是一个用java语言编写的模板引擎,它会通过模板引擎来形成数据进行输出。freemarker除了在表现层能够展示信息外,它还可以输出其他的文件格式,比如java、xml等。它不依赖与web容器而存在,也无法识别servlet、http等协议。 freemarker的特点freemarker的工作流程既简洁又清晰,其核心是模板与数据模型的结合来产生输出,它具有以下特性:(1)通用目标。支持各种格式的文本,例如html、xml、java等,在各种框架下都可以使用,并不依赖于环境。(2)具有自己的控制语言。模板具有基本程序控制指令,在运算时,还可以使用复杂的表达式,在模板输出时,会自动进行html转义、压缩等。(3)通用数据模型。freemarker模板数据通过变量的形式显示可用对象,而不是直接反射到java对象。(4)web无缝结合。经过模板语言中自己创建的web任务的处理,可彻底分离可视化设计和应用程序业务逻辑。概括地来说,freemarker是用来制作模板的框架技术,它具有自己的控制语言和可支持多种文本格式的模板17。但是,它也有不足之处,在普通页面的表现能力上freemarker模板引擎的性能显得比较差。2.4.3 velocity模板引擎综述 velocity的工作原理velocity是一个基于java的表现web页面的模板引擎。它的的工作原理是这样的:程序开发人员和界面设计人员首先在一个模板中确定一组数据,并分头并行开发,程序开发者将数据放入context对象中给页面设计者引用,页面设计者通过编写vtl语言创建页面模板调用数据来完成具体的输入输出工作。context对象起到了两者之间数据的传递作用18。工作原理如图2.3所示。velocity引擎通过java程序将数据放入context对象中,并让模板调用context对象中的数据形成各种输出。图2.3 velocity工作原理图当velocity应用于应用程序时,一般分以下几步:(1)初始化velocity;(2)创建context对象;(3)添加数据到context;(4)选择模板;(5)融合模板和数据,生成输出界面19。 velocity的特点在java web应用中,通过对velocity工作原理的分析,可以知道velocity模板引擎有着这样一些特点:(1)vtl语言简单、灵活且功能强大。基于vtl语言简单易学的特点,页面的设计人员可以很好地掌握它,并且可以独立承担页面设计工作,程序编写人员就无需再考虑页面设计的工作,可以专心研究程序的编写与实现,这种并行工作模式大大可以提升工作效率。(2)velocity使得页面与java代码分离。页面与代码的分离可以非常灵活地分别对页面模板和程序代码进行修改而不会互相影响。(3)velocity提高web访问性能。当velocity页面模板解析过后,再次使用时页面的生成速度会比jsp还快,因为velocity页面模板在解析过一次后,就把内容放入内存中,等待以后重复使用。同时。该技术也能够很好地实现java静态页面20。 velocity的优势velocity的优势在于它独立于后台组件,即使改变成其他的表现层模板也不会影响到后代组件的逻辑代码。velocity的语言比较简单,也很容易学会。velocity通过隔绝视图界面与逻辑层的联系,相比较其他的脚本语言,它更能保证页面的整洁性和可维护性。相比freemarker模板引擎,velocity在普通页面的性能表现上更加强大,所以,以velocity模板引擎作为本系统的表现层是合理的。2.5 mysql综述2.5.1 mysqlmysql作为一个小型的关系型数据库,由于其体积小、速度快、维护成本低,尤其是开放源码这一特点,使得它获得许多中小型网站的格外欢迎,在世界的各个领域都有着涉及和施展本领的空间21。2.5.2 mysql的特性mysql具备很多很好的特性,为开发人员和企业用户提供支持。其主要特性如下:(1)采用c和c+编写,多个编译器提供支持,并拥有可移植能力。(2)支持多种操作系统,比如aix、freebsd、hp-ux、linux、mac os、novellnetware、openbsd、os/2 wrap、solaris、windows等。(3)支持多种编程语言,例如c、c+、python、java、perl、php、eiffel和ruby等。(4)支持多线程,可以将cpu的利用率大大提升。(5)基于查询算法的优化而拥有较高的查询速度。(6)以独立的软件应用存在于服务器或者以类库的形式置于别的应用中。(7)支持多种数据库连接类型,比如tcp/ip、odbc和jdbc等。(8)提供用于管理、检查、优化数据库操作的管理工具。(9)支持大型数据库,通过一定优化可以处理海量数据。(10)支持多种存储引擎22。2.5.3 mysql的应用mysql数据库与其他大型数据库相比,例如oracle、db2、sql server等,自然有它的不足之处,比如功能不够强大,处理能力有限等,但是它仍旧是目前一般的个人使用者和中小型网站数据库使用的首选,因为它所提供的功能已经足够,而且由于mysql是开源软件,可以为使用者节省总体拥有成本。2.6 持久层框架综述2.6.1 hibernate框架综述 hibernatehibernate是一个对jdbc进行封装的开放源代码的持久层框架,因为是对jdbc的轻型封装,java开发人员能够运用对象编程的思想去控制数据库的具体实现。而且它可以在java软件程序当中使用,也可以在一些web程序中使用,比如servlet等。hibernate作为持久层的框架,最主要的功能是能够在应用ejb的j2ee架构中取代cmp,使数据得到持久化。 hibernate的特点hibernate的代码相当简单,开发时需要编写的代码并不多,而且开发的速度比较快。在对数据库的封装方面,hibernate能力比较强大,能够实现pojo和数据库表之间的映射,也能够自动生成和执行sql。hibernate的劣势就是学习门槛较高,而且在设计o/r映射方面,要找到性能和对象模型之间的平衡点比较难,需要我们拥有开发的经验和强大的学习能力。2.6.2 ibatis框架综述 ibatisibatis database layer架构是一个基于java的以sql为中心的持久层框架,拥有继承、支持加载、关联查询等一些特点。而一般的orm映射框架与它是不一样的,其他的orm映射框架提供的是一种元数据(meta-data)映射,是将字段、数据库表等映射到属性和类上。而ibatis的作用与sql mapping的差不多,是将sql查询的参数和结果集映射到类。具体如图2.4所示。ibatis实现过程是,将sql语句当作是输入和输出的模块,where条件参数对应输入,而结果集对应输出。ibatis能将输入的javabean对象、map、基本数据类型等映射到sql的条件参数上,还能够将查询结果投射到javabean对象、map、基本数据类型等参数对象上。ibatis通过使用xml文件来完成对这些输入和输出的具体映射23。图2.4 ibatis框架的原理图 ibatis框架的特点ibatis框架的组件主要包括两个部分,分别为dao组件和sql maps组件。sql maps组件在开发人员对java对象以及一些dbms系统进行读写操作时,可以不一定使用jdbc的api,也可以在不耦合java代码与sql语句的情况下实现。sql maps组件有以下四个特点:(l)因为该组件的功能,系统可以拥有更大的设计空间。它基于xml配置文件,能够将javabean映射成sql语句,而一般的orm工具,比如hibernate等,只能将sql语句映射成java对象24。(2)sql语句的输入和输出参数不是唯一的,可以是其他各种类型,例如包装类、简单类等,当然也可以是比较复杂的类型。(3)在特殊情况下,一些java属性、sql字段列值映射等可以基于数据库操作和特别的需求需要配置特殊的设定。(4)比较其他的框架,这个sql map框架更加简单,也更容易使用代码实现设计。图2.5说明了jdbc编程代码框架与ibatis编程代码框架的流程有很大的差别。从图中可以看到,使用sql map框架可以使其访问数据库的代码变得非常简单 25。图2.5 jdbc与ibatis程序框架比较图通过这两个持久层框架的描述和比较,我们发现以下几点:(1)ibatis更加容易理解,而hibernate则更难处理,一般学习的起点也比较高。(2)在进行二次开发时,ibatis会比hibernate更具有灵活性,因为二次开发对数据库结构的操作会比较困难。(3)hibernate能够自己生成sql语句,非常方便,而ibatis则必须手动去编写sql,所以如果在需求量差不多的情况下,hibernate的工作量会比ibatis少得多。(4)当我们需要处理大数据,需要满足非常高的性能要求的时候,ibatis可以优化sql语句的特性决定了它会比hibernate拥有更大的优势。所以,ibatis持久层框架更加适合我们的系统开发环境。2.7 本章小结本章具体分析了jasperreports报表开发工具的内容,介绍了jasperreports相关特点,分析了jasper技术的优缺点,根据需求,说明了选择jasper的必要性。对于mvc框架技术的讨论,主要放在struts2框架和springmvc框架上,通过分析它们的特性,比较两者的优缺点,最终确定拥有清晰的角色划分、可重用的业务代码等优点的springmvc框架更适合报表管理系统的开发。在表现层技术方面,主要分析了jsp、velocity模板这两个技术。每一个技术都有其特点,针对报表系统需要开发简单灵活、功能强大、页面与代码分离等特性,我们可以选择使用velocity模板结合一部分jsp页面的形式作为表现层。而在系统的持久层上,主要是对hibernate框架和ibatis框架进行了综述。通过对两个框架的比较与分析,发现ibatis框架有着比其他框架更加简单易懂、开发便捷的优势。59浙江大学硕士学位论文第3章 报表管理平台架构设计第3章 报表管理平台架构设计3.1 平台架构设计的概述报表管理平台的主要作用是管理和实现报表,用户在平台上可以输入报表参数(比如报表类型、日期等),通过运行报表模板来产生最终报表。平台的架构设计是对前一章技术综述的具体应用,它的合理与否将直接影响到报表管理平台在功能和性能上的优劣,是实现整个系统的重点。本章将从报表管理平台的业务流程以及技术框架方面来设计整体平台架构 26。3.2 平台的业务流程设计报表管理平台的业务功能模块主要展示了每一个模块的具体功能以及模块与模块之间相互的作用和联系,能够提供结构清晰的业务功能和流程分析。基于用户需求,平台的整体业务功能模块如图3.1所示,主要分为三层:外部系统层、业务逻辑层和资源库层。每一层都有其各自的功能特点。图3.1 报表管理平台的整体业务功能图(1)资源库层:报表所使用的数据、模板和用户角色的账号等都来自资源库层,它的内容包含数据库和报表引擎库,包括报表的类型数据、报表模板数据、用户数据等,主要作用是提供这些数据给业务逻辑层使用,为业务逻辑层建立完善

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论