1、本科毕业论文(20 届)枣品质决策系统设计与开发数据导入所在学院专业班级 软件工程学生姓名指导教师完成日期摘要枣因其营养价值高,易种植,耐存活且在不同地域拥有不同特色而成为许多地方特别是山区高原致富之道,但由于技术方面的欠缺使得果农无法用专业知识去评估自己手中果实的品质和正确价值导向,由此带来一系列问题,信息消息的滞后导致农户盲目种植,产品积压,销售停滞。因此就要找到相关途径,知己之道,才能让枣农更快发展富裕起来。由此需求设计了枣品质决策系统依托当前信息的网络化、快速化,使用网络评估果实品质,给出相关建议等服务为前提的综合信息评估服务系统的设计。该服务器系统在功能上可以根据实时的数据进行决策树
2、的更新重建,以及用户可以根据采集到的数据进行功能的查询,本文以功能逻辑为主线,较深入的分析子功能的实现原理和方案的选择。详细介绍了基于 java 和以 JXL(Java Excel Api)为代表的开源技术等在 web应用系统中的数据导入导出的方法。在此项目中选择了 JavaWeb 作为开发语言,用到了面向对象的开发思想和 mvc 设计模式的设计理念。在接口设计上,实现了数据封装和信息隐藏。关键字:JavaWeb 批量数据 导入/导出AbstractDates because of its high nutritional value, easy to grow, resistance to
3、survive and in different regions have different characteristics and become rich in many places, especially in mountainous plateau, but due to the lack of technology make the fruit cannot use professional knowledge to evaluate the quality of their own hands the fruit and the correct value guidance, l
4、eading to a series of problems, information messages delay lead to farmers planting blindly, product backlog, sales stalled. So will find relevant way, bosom friend, to get the most rich faster development. Thus demand jujube quality decision system is designed, it is relying on the current informat
5、ion network, rapidness, using the network evaluating fruit quality, and provide advice and other services as the prerequisite of comprehensive assessment information service system design. The server system on the function can be based on real-time data updating decision tree reconstruction, and the
6、 user can according to the collected data query functions, based on the function of logic as the main line, more in-depth analysis of sub function the principle and scheme of choice.This paper introduces the technology and method of data importing and exporting based on Java and open source technolo
7、gy such as JXL etc. in WEB application system .Chose the JavaWeb in this project as a development language, use the object-oriented development thought and the design concept of the MVC design pattern. In the interface design, realized the data encapsulation and information hiding.Key word: JavaWeb
8、Batch data Import/Export目 录 1.引言 .11.1 背景和意义 .11.1.1 背景 .11.1.2 意义 .11.2 国内外的现状 .11.3 本文的重点 .22.技术支持 .32.1 开发工具和环境 .32.1.1 开发工具选择 .32.1.2 运行环境 .42.2 用 JDBC 连接数据库的方法 .42.3 Excel 文件的解析 .43.需求了解与概要设计 .63.1 需求了解 .63.1.1 条件和限制 .63.1.2 功能需求 .63.2 概要设计 .63.2.1 系统总体分析 .63.2.2 按模块分总体设计 .73.2.3 按各模块间关系 .73.2.
9、4 系统模块划分 .84.详细设计及实现 .94.1 设计说明 .94.2 功能分析 .94.3 文件上传 .94.3.1 上传组件 .94.3.2 实现过程 .94.3.3 上传文件的处理细节 .114.4 解析 excel 文件 .114.4.1 现状介绍 .114.4.2 Java Excel Api .114.4.3 apache POI .124.4.4 java excel api 和 apache poi 的比较 .134.5 数据库访问 .134.5.1 JDBC 的基本介绍 .134.5.2 JDBC 常用接口 .144.6 后台包及设计 .164.7 异常处理 .174.8
10、 出现的问题以及解决方法 .175 结论 .185.1 技术特点 .185.2 缺点及不足 .185.3 总结 .18致谢 .19参考文献 .2011.引言本系统主要面向果树种植方面的专家和果农用户,基于 sql server 2005 数据库数据挖掘工具。它基于 javaweb 语言开发,操作简单,界面友好,易于操作,实用性强;同时还能够跨平台运行。1.1 背景和意义1.1.1 背景枣本身的功能价值赋予的,枣的补血、美容、保健、营养、抗癌、抗疲劳、镇静、护发、降脂、降糖、养生等等效果符合现代人追求的时尚要素国务院总理温家宝 3 月 5 日在十二届全国人大一次会议上作政府工作报告时提出,要促进
11、农业稳定发展和农民持续增收。坚持把解决好“三农”问题作为各项工作的重中之重。党的十六大以来,党中央明确要把解决好“三农”问题放在全党工作重中之重的位置,着力统筹城乡经济社会发展,加快形成城乡发展一体化新格局。党的十八大从中国特色社会主义事业总体布局出发,推出了“促进工业化、信息化、城镇化、农业现代化同步发展” ,明确“城乡发展一体化”是解决“三农”问题的根本途径。随着计算机技术和网络技术的迅速崛起,计算机日渐深刻的在改变着人们的生产生活方式。而互联网已日益成为收集提供信息的最佳渠道,并逐步进入科学种植决策领域。1.1.2 意义枣树的种植区域地理环境和人文环境特征赋予的,枣树的种植不仅仅有它的经
12、济意义,更有重要的环境意义和社会价值,枣树种植的区域主要分布在我过干旱、半干旱、风沙荒漠化和土地盐碱化的区域,枣树的种植可以极大的改善这些区域的生态环境,符合人类与自然和谐相处的命题,同时这些区域主要为中国经济发展相对滞后的区域,是我国改善这些区域人民生活环境、提高他们生活水平,增加收入来源的重要抓手,对于缩小区域经济差异,促进经济和谐发展有着重要意义。1.2 国内外的现状过去的二十年,传统信息随着应用领域增多以电子格式存储的数据在量上有了戏剧性的增长。数据的累积量已经在以指数性的速率递增。人们已经评估出世界上信息的数量每二十个月翻一番,并 1 且数据库的数量与大小正在以更快的速度增长。诸如“
13、物种属性“或远程移动设备等的电子数据采集设备的增长更加剧了可用数据的增加。如何有效地获取和利用这些平时的采样数据,并且变数据为知识,是我们研究的主要课题。当 WEB 应用系统需要从外部系统引进或向外部系统提供大量数据时,通过手工方式2单条进行录入几乎是不可能的,不仅繁琐,而且极易出现错误。如果使用专业的数据库管理工具,则对于一般的用户又过于复杂。在 WEB 应用系统中,常用的批量数据导入导出的方法有通过网页提交数据、利用数据库系统提供的专业工具、以及利用数据库文件进行导入导出。(1)通过网页提交数据通过网页提交数据这种方法是用户通过客户端界面手工将数据逐个录入。它的优点是非常简单而且易用;缺点
14、是费时费力,不仅繁琐,而且极易出现人为错误,从而导致数据库的失真。这种方法适用于数据量较少且分散的系统。(2)利用数据库专用工具通常,数据库系统都带有专门用以进行批量数据导入导出的专用工具或者第三方工具,比如 SQL Server 的数据传输服务(DTS) ,Oracle 的数据库客户端,Mysql 的第三方工具 Mysql-Front 等等。这种专业工具或者第三方工具,功能都很强大,有关数据库方面的问题,基本可以解决。但是,这些工具对于非专业人员过于复杂。此外大型的应用系统出于安全方面的考虑,一般不开放除应用以外的其他端口,即专用工具或者第三方工具在非现场有可能没有权限链接数据库。所以这种方
15、法只适用于比较专业并且拥有较高权限的操作人员。(3)基于数据文件的批量数据导入导出方法基于数据文件的批量数据导入导出方法的基本原理是,将数据预先存于一数据文件中(如 Excel) ,然后将该数据文件上传至服务器指定路径,最后同 U 哦服务器对数据文件进行解读,并将结果导入到指定数据库表中。这个方法的关键是对数据文件进行解读,以 Excel 为例,php 可以通过 PHP Write Excel 组件,java 可以通过 Apache POI 或者JXL,而 asp 或者.net 则可以直接将 Excel 作为数据源。相比较而言,在对 Excel 文件进行解读上,asp 或者.net 有着与生俱
16、来的优势,不足之处是服务器智能是 Windows 平台。1.3 本文的重点以系统使用者的角度,按照操作的逻辑顺序,即 文件下载文件上传数据库连接操作 excel 文件的顺序,对实现部分进行较为深入的分析,以及对不同方案的比较、选择。32.技术支持2.1 开发工具和环境通过 MVC 结构添加相关样本数据导入数据库,后台生成相应决策树,用户通过前台确定相关的查询数据,通过决策树评估得到由该品种的品质等级。专家用户可以进行样本数据查看,增加和删除,也可以自己通过选择相应的属性建立决策树判断某些属性对决策结果的影响。2.1.1 开发工具选择当前开发此类工具的语言很多,比如:JAVA,VB,C+,NET
17、在这些语言当中,要想开发一个功能完善、界面友好、移植性好、扩展性好的系统并不是所有语言都能满足的。首先看 VB 语言:VB 在用户界面开发方面有很大优势,比如:操作简单,可视化强。但是它没有脱离开面向过程的编程模式,可扩展行和维护性很差。而且不支持 B/S 模式。C+虽然既支持面向对象编程,同时又支持面向过程编程。然而面向对象部分结构复杂,而且并不能支持 B/S 模式。.NET 架构不但支持面向对象编程,而且同时支持 B/S 模式和 C/S 模式,按说是系统选择的对象,然而不能实现跨平台运行导致的低移植性是它的致命缺点。最后,我们把选择了 java。Java 语言与其他语言相比有一下优点:1.
18、 可移植性与结构中立结构中立,平台无关;对网络编程,单系统软件发布有用。2. 分布式对象可以在本地或远程系统中。 3. 安全性并不允许程序访问所有的计算机内存和磁盘空间。 4. 健壮性Java 便一起可以在编译时自行检测许多问题,而别的语言只有运行时才检测,Java 不支持指针算法,不会有不良的指针管理引起的内存泄露或者内存错误。5. 多线程可以同时执行多个任务。 6. 动态性足够多的运行时类型信息,用于在运行时校验对象。这使得在一种安全有效的方式下动态的连接代码成为可能。在设计模式上选用 MVC 设计模式:当用户有请求提交时,所有请求都会交给 Servlet进行处理,然后由 Servlet
19、调用 JavaBean,并将 JavaBean 的操作结果通过RequestDispatcher 接口传递到 JSP 页面上。由于这些要显示的内容只是在一次请求-回应中有效,所以在 MVC 设计模式中,所有的属性传递都将使用 request 属性范围传递,4这样可以提升代码的操作性能。2.1.2 运行环境操作系统:Windows 系列,内存 128M 以上,硬盘 1G 以上Java 虚拟机版本:jdk1.7.0目前系统支持的数据库:Sql Server。可用浏览器:默认为 Ie 浏览器(支持 javascript 脚本) 。Office:使用 excel 20032.2 用 JDBC 连接数据
20、库的方法通过 java 可以有两种方式连接数据库:JDBC 和 ODBC,但是因为 ODBC 是一个 C 语言接口,所以 ODBC 在 Java 中直接使用不适当。因为从 Java 中来调用 C 代码在安全性,健壮性,实现的方便,可移植性等方面有许多不便。它使得 Java 在这些方面的许多优点得不到发挥。于是我们选择了 JDBC 与数据库连接。Jdbc 是 Sun 提供的一套数据库编程接口 API 函数,由 Java 语言编写的类、界面组成。用写的程序能够自动地将 SQL 语句传送给相应的数据库管理系统。JDBC 连接数据库方法图 2-1:图 2-1 JDBC 连接数据库方法2.3 Excel
21、 文件的解析基于 Java 的 Excel 文件的导入导出方法的实现主要利用 Java Excel Api 组件、JspSmartUpload 组件(jspsmart 的一个项目)或者 Spring 中的 Commons.fileupload 组件。当前主要有两种 Java Excel Api 开源项目,一个是 POI,一个是 JXL。两者尽管在功能或效率上有不同,但在处理 Excel 文档的思路基本是相同的。首先通过流(InputStream)得到 Excel 文件,按照 Excel 文档的结构(即工作簿 WorkBook,工作表WorkSheet,单元格 WorkCell)创建相应的对象,
22、通过对象取出或写入单元格数据,最有5使用流(OutputStream)将信息写回到 Excel 文件中。具体结构如图 2-2 所示。图 2-2 导入导出过程 在具体实现上,POI 分别使用 HSSFWorkbook,HSSFSheet,HSSFRow 以及 HSSFCell 等对象,而 JXL 使用了 Workbook,Sheet 以及 Cell 等对象。POI 由 HSSFSheet 对象创建HSSFRow,然后又 HSSFRow 创建 HSSFCell;而 JXL 中由 Sheet 直接得到 Cell 数组。正是由于 Cell 数组的设计,使得 JXL 在内存处理上有一定的优势。但本质上,
23、两者没有太大的区别。Java Excel ApiExcel 文件单元格/行(row)单元格/列(cell )工作表(WorkSheet)工作簿(WorkBook)InputStreamOutputStream63.需求了解与概要设计3.1 需求了解3.1.1 条件和限制用户必须登录进入相关角色才能使用相关权限的功能,样本数据库默认必须至少有一个样本值。3.1.2 功能需求功能划分:(1) 文件上传到服务器(2) 链接数据库(3) 解析 excel 文件3.2 概要设计3.2.1 系统总体分析总体分析如图 3-1:数据库 JavaBean ServletJsp,Javascript,AJAX图 3-1 系统总分析图