2015年本科JAVA界面通讯录系统本科毕业论文设计.doc_第1页
2015年本科JAVA界面通讯录系统本科毕业论文设计.doc_第2页
2015年本科JAVA界面通讯录系统本科毕业论文设计.doc_第3页
2015年本科JAVA界面通讯录系统本科毕业论文设计.doc_第4页
2015年本科JAVA界面通讯录系统本科毕业论文设计.doc_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

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

文档简介

武汉理工大学java界面通讯录系统摘要 随着科技的发展,互联网和移动通讯技术的融合愈来愈完美,基于这种技术的网络产品已经成为人们生活中不可或缺的一部分。与此同时,21世纪是一个信息爆炸的时代,信息量不断增多,沟通日益现代化,因此人们需要一个方便快捷的方式来存储大量的通讯信息。 通过对人们想要通讯录实现具体功能的深入调查与分析以及对其他通讯录系统的学习,为用户量身定制了一个实用的个人通讯录,使用户可以通过web,wap等方式随时随地进行访问。个人通讯录系统是一个专门针对储存用户联系方式多以及一些个人信息的实用信息系统,它实现了用户对朋友、同事等个人信息的分类储存和快速查阅的功能,大大减少了查找过程的时间。该系统是使用java作为开发语言,以mysql作为后台数据库,tomcat作为服务器,基于b/s模式开发的个人通讯录的设计与实现。 本文主要阐述了个人通讯录系统的可行性分析、系统设计、需求分析、功能模块划分、数据库模式分析、系统测试与性能分析,并据此设计了基于b/s模式的数据库结构和java程序。本系统主要分为前台和后台,最终形成个人通讯录系统。关键字:个人通讯录系统;struts2;hibernate;spring,b/s模式java interface mail list systemabstractwith the development of science and technology, internet and mobile communication technology has become more and more perfect fusion, based on the technology of network product already becomes the people to live an indispensable part. at the same time, twenty-first century is an age of information explosion, the amount of information increasing, more and more modern communication, so people need a convenient and efficient way to store large amounts of information communication.the people want to mail list realize the specific function of the thorough investigation and analysis as well as to other mail list learning system, tailored for users of a practical personal mail list, the user may through the web, wap, whenever and wherever possible to consult. personal mail list system is specially designed to store user contact way and some personal information of practical information system, it enables the user to many friends, colleagues and other personal information storage and fast access function, greatly reduces the searching time. the system is to use java as a development language, adopts mysql as background database, tomcat as the server, based on b / s mode development of the design and implementation of personal mail list.this article mainly elaborated personal mail list system feasibility analysis, system design, needs analysis, functional module division, database model analysis, system testing and performance analysis, and thus designed based on b / s mode of the database structure and java program. this system is divided into front and back, eventually forming personal mail list system.keywords:personal mail list system;java;mysql;b / s mode武汉理工大学目 录摘要iabstractii1 绪论11.1 项目研究背景11.2 目的和意义11.3 国内外通讯录发展现状11.3.1 国内通讯录发展现状11.3.2 国外通讯录发展现状11.4 系统设计思想21.5 本文结构22 系统开发环境及技术介绍32.1 系统运行平台设置32.2 运行环境32.3 开发工具及技术简介32.3.1 开发工具简介32.3.2 开发技术简介43 可行性分析113.1 经济可行性113.2 技术可行性113.3 应用可行性113.4 运行可行性124 需求分析134.1 通讯录系统的需求分析134.1.1 面向管理员用户的功能需求134.1.2 面向普通用户的功能需求144.2 数据流图145 总体设计175.1 系统模块总体设计175.1.1 普通系统功能模块175.1.2 管理员功能模块185.2 数据库设计195.2.1数据库选择195.2.2 数据分析195.2.3 数据库的详细设计196 详细设计与实现226.1 系统流程分析226.2 普通用户基本功能的设计与实现226.2.1 用户登录模块设计与实现226.2.2 新用户注册设计与实现246.2.3 个人资料修改模块的设计与实现256.2.4 联系人管理模块的设计与实现266.2.5留言管理模块的设计与实现266.3 系统后台基本功能设计与实现276.3.1 管理员登陆模块的设计与实现276.3.2 修改个人密码模块的设计与实现286.3.3 用户管理模块的设计与实现296.3.4 联系人类别模块的设计与实现296.3.5 留言管理模块的设计与实现316.3.6 系统公告模块的设计与实现317 系统测试与性能分析327.1 软件测试337.1.1 软件测试概述337.1.2 系统整体测试步骤337.2 个人通讯录系统测试337.2.1 普通用户模块的测试337.2.2 用户注册模块的测试34结 论35参考文献36致 谢37外文原文38中文翻译48武汉理工大学1 绪论1.1 项目研究背景当今世界信息技术的快速发展让通讯更加方便,人人之间的距离可能在逐渐远离,但通信技术的快速发展让人与人之间的距离仿佛在逐渐减小,科技高度发达的世界促使了通讯系统的产生。而移动的通讯更是今后世界发展的趋势,移动通信正在逐渐成为通信领域中的主流。在这种通信环境下,人们可以在任何地点、任何时间享受自由通信。如今的通话质量几乎不会再受到电磁波等外界环境的影响,而高效便捷简易的通讯录是保持良好通信的重要保障。传统的通讯录是把联系人信息写到纸质材料上,这种通讯录不仅携带不方便,而且费时费力,修改、查询都会增加时间成本1。另一种是名片夹通讯录,这种通讯录同样也有较多的缺点:名由于片夹容量有限,不宜批量、长时间保存。现在比较流行的通讯录是我们的手机通讯录。手机容量较大,且可以长时间保存。但是手机存储界面单一,存储单元的信息也较少2。一旦手机丢失或损坏,通讯录也就面对再也无法找回的后果。因此,开发一个免费的、功能丰富多样的、基于网络存储的个人通讯录是非常有必要的。1.2 目的和意义如今社会网络无处不在。我们可以在网络上建立一个 web服务系统。这种系统能够固定存储在网络服务器上,用于专门记录用户联系人的信息。随着硬件成本的降低和服务需求的增长,手机的功能越来越多,而且大都支持互联网接入,这样我们便可以随时随地,随心所欲地在线查找和更新通讯录。在此基础上还可以研发出手机客户端,这样不仅可以提高信息检索的速度,而且消除了网络复杂环境对功能的影响3 。此外手机客户端还可以定期更新信息,保持手机和网络信息的同步。1.3 国内外通讯录发展现状1.3.1 国内通讯录发展现状国内的有qq通讯录、360通讯录等4 。移动通讯录是一种利用移动互联网来实现通讯录信息同步更新和备份的服务。这种通讯录有友录通讯录、火种通讯录等5。基于手机和网站的同步通讯录有人人同步免费版、qq手机同步。总的看来,这些通讯录功能丰富,多智能化。有的还有通讯、留言等功能,为个人通信供了方便。1.3.2 国外通讯录发展现状国外的网络通信技术发展的较为成熟,目前各类产品的发展、通讯方式的丰富使得通讯录产品以不同的方式涌现出来,有基于手机的,有基于个人电脑的;有无线方式接入的,有web方法接入的等等。例如目前主流的通讯录应用主要有移动的pim(移动办公平台,pim,personal information management),pim业务是指客户将移动终端或其他客户端中的信息(如:通信录、日排等)以无线或有线方式与网络服务器保持一致,并能用多种终端、多种接入手段来管理个人信息的业务6。pim业务为用户提供了统一管理、便捷查询的通信录、安排等个人信息的服务,使用户可以使用移动终端、计算机、pda、网络服务器种设备,通过互联网、移动网络方式来管理或同步通信录、日程安排、事件提醒、子邮件、铃声图片、资料文档等个人信息。移动终端、计算机、pda通过本地蓝红外、数据线、读卡器的进行的本地数据同步不在本规范约束范畴内,终端可选相应功能7。此外其他典型的像微软的livecontaets、ibmlotusnotes以及蜘蛛通讯录和无忧通讯录,都可以帮助个人管理其联系人(contact)、日程(calendar任务(task)、便签(note)以及电子邮件(email)等个人信息,日程中包括(appointment)、会议(meeting)和事件(event)8。1.4 系统设计思想对于典型的数据库管理系统,尤其是通讯录这样的存储信息特别大的数据库网络管理系统,必须要满足使存储数据方便、操作数据灵活等要求。本系统在设计时应该满足以下几个目标: (1)设计采用良好的人机界面设计模式,界面个性、友好、赏心悦目,信息查询灵活、方便,数据存储准确、安全可靠;(2)能够实现快速存储联系人大量信息;(3)用户可以多条件进行信息检索;(4)新用户可以快速注册,登陆系统后可以随时修改自己的基本资料;(5)实现添加、删除联系人类别的功能; (6)实现联系人类别排行功能,以方便用户了解联系人信息;(7)可以实现用户之间留言的功能;(8)用户可以随时查看留言、联系人信息; (9)对输入的数据,系统进行严格的数据检验,并有合理的信息提示,尽可能排除人为的错误9。1.5 本文结构本文具体内容包括:可行性分析、需求分析、系统总体设计、系统详细设计与实现、系统的测试。着重描述了通讯录系统的组成与结构,阐述了系统的设计方案、实现方法以及所采用的开发工具和相关技术,另外,重点剖析了部分环节的开发过程。本系统在一定的环境下, 分别从管理员的角度和普通用户的角度,对系统的重要模块进行了反复的模拟测试,模拟测试结果与预期结果相符,从而充分证实了系统的可用性、易操作性。从数据库数据角度,对系统的相关模块进行,全方位覆盖测试,测试结果没有bug出现,证实了系统的准确性、可靠性。这样的设计确保了管理员和用户都可以放心使用,不用担心操作困难,以及信息泄露等安全问题,而且操作简单易行,效率高,易维护。2 系统开发环境及技术介绍本章主要是对本系统的系统开发环境以及设计系统所使用相关技术的介绍,通过第一章的介绍我们已经对个人通讯录系统的国内外现状以及系统目标有了一定的了解。为了改善控制结构,提高程序的可读性、可移植性、可扩展性与可维护性,本系统采用了结构化的设计方法本系统详细设计的原则是采用结构化的设计方法。2.1 系统运行平台设置本系统的运行平台设置分为硬件环境和软件环境。 硬件环境:系统的硬件环境配置为处理器pentium iii800,内存512m,硬盘1g。软件环境:系统的软件环境配置为windows xp操作系统,mysql数据库,jdk1.5、myeclipse6.0开发工具包和tomcat6.0服务器。2.2 运行环境系统开发环境:myeclipse java enterprise 6.5系统开发语言:java运行平台:windows xp数据库:mysqlweb服务器:tomcat6.0使用该方案,不仅可以提高程序运行效率,而且可以减少成本,提高数据安全性。 2.3 开发工具及技术简介以下内容是对本系统所采用的开发工具和技术进行的简单介绍。2.3.1 开发工具简介 (1)myeclipse简介myeclipse是一个非常优秀的集成开发环境,它旨在简化用于多操作系统软件工具的开发过程,可以用于管理多种开发任务,其中包括测试、性能调整以及程序调试等,而且还可以集成来自多个供应商的第三方应用程序开发工具10。通过集成大量的插件,eclipse的功能可以不断扩展,以支持各种不同的应用。 (2)mysql简介mysql是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内。这样就增加了速度并提高了灵活性。mysql的sql结构化查询语言是用于访问数据库的最常用标准化语言12。由于其具有体积小、速度快、总体拥有成本低,尤其是开放源码这些特点,许多中小型网站为了降低网站总体拥有成本而选择mysql作为网站数据库。其存储和管理数据有以下优点:优化的sql查询算法,有效地提高查询速度。提供tcp/ip、odbc和jdbc等多种数据库连接途径。提供用于管理、检查、优化数据库操作的管理工具。可以处理拥有上千万条记录的大型数据库。支持aix、linux、novellnetware、solaris、windows等多种操作系统13。为多种编程语言提供了api。这些编程语言包括c、c+、java、php、ruby和tcl等。2.3.2 开发技术简介本系统需要用到的java相关技术有jsp技术、dwr技术、jdbc技术、ssh框架。其中,关键的技术难点在于struts2技术的运用。struts2技术是基于mvc的web应用框架,有良好的架构和设计,可重用,模块化,扩展性好,而且是开源代码14。mvc(model-view-controller)是一种设计模式,它把应用程序分成3个核心模块:model(模型)、view(视图)、controller(控制器)。视图提供可交互的用户界面,向用户显示模型数据 ,但是视图并不进行任何实际的业务处理。模型是应用程序的主体部分,表示业务数据和业务逻辑,一个模型能为多个视图提供业务数据,多个视图可以重用同一个模型。控制器接收用户的输入并调用模型和视图去完成用户的请求,当用户在视图上选择菜单或按钮时,控制器接收请求并调用相应的模型组件去处理请求,然后调用相应的视图来显示模型返回的数据。jsp是由sunmicrosystems公司倡导、许多公司参与一起建立的一种动态技术标准。在传统的网页html文件(*.htm,*.html)中加入java程序片段(scriptlet)和jsp标签,就构成了jsp网页。java程序片段可以操纵数据库、重新定向网页以及发送e-mail等,实现建立动态网站所需要的功能。所有程序操作都在服务器端执行,网络上传送给客户端的仅是得到的结果,这样大 大降低了对客户浏览器的要求,即使客户浏览器端不支持java,也可以访问jsp网页。其关系如图2.1所示 图2.1 jsp应用图 jsp真正学习的时间不多,但是使用的时候特别多,慢慢就熟悉理解了jsp。jsp技术使用java编程语言编写类xml的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。jsp将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于web的应用程序的开发变得迅速和容易。web服务器在遇到访问jsp网页的请求时,首先执行其中的程序段,然后将执行结果连同jsp文件中的html代码一起返回给客户。插入的java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。jsp与java servlet一样,是在服务器端执行的,通常返回给客户端的就是一个html文本,因此,客户端只要有浏览器就能浏览。 jsp页面由html代码和嵌入其中的java代码所组成。服务器在页面被客户端请求以后对这些java代码进行处理,然后将生成的html页面返回给客户端的浏览器。java servlet 是jsp的技术基础,而且大型的web应用程序的开发需要java servlet和jsp配合才能完成。特点:jsp具备了java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。支持jsp技术的服务器,如ibm、oracle、bea公司等,所以jsp迅速成为商业应用的服务器端语言。我们可以简单这么认为jsp是可以用一种简单易懂的等式表示为html+java=jsp。jsp的运行机制与生命周期-运行机制,1.jsp会被自动部署到web应用服务器。jsp程序首次被载入时都被翻译成servlet文件,然后才被运行,这个工作主要由jsp引擎来完成。当第一次运行一个jsp页面时,jsp引擎完成以下操作:1.将jsp文件翻译成servlet文件(以.java为后缀),它是一个完整的java应用程序。2.jsp引擎调用jvm编译servlet文件得到可执行的.class代码文件3.jsp引擎调用jvm解释执行class文件,并将运行结果返回给服务器4.服务器将运行结果以html形式作为响应返回给客户端浏览器由于一个jsp页面在第一次访问时要经过翻译、编译和执行这几个步骤,所以客户端得到响应的时间比较长。当该页面再次被访问时,它对应的class文件已经生成,因此jsp页面的访问速度会很快。 当一个jsp页面被请求时,jsp引擎首先将其和它对应的servlet文件作比较,如果此时的jsp页面比servlet文件新,说明原来的jsp页面已经被更新,需要重新编译;如果相同,则直接执行原来的class文件。通过这种机制,jsp引擎可以实现jsp页面的动态更新。生命周期分为7个阶段1.jsp页面翻译阶段-当web容器第一次收到对某个jsp的请求后,自动将jsp翻译成servlet代码,翻译的代码可以在该容器目录下找到例如:tomcat将翻译后的代码放在work目录下,名称与jsp不同。也就是说jsp的实质就是servlet程序。2.jsp编译阶段,当执行完翻译以后,web容器负责将servlet代码编译为字节码。3.装载jsp页面,web装载生成servlet类。4.jsp页面类实例化。web容器创建servlet实例。5.jsp页面初始化阶段。web容器调用jspinit()方法,允许jsp装载资源。准备接受请求。6.服务阶段。调用jspservice()方法。创建新线程处理用户请求。7.jsp页面销毁。当所有的服务完成以后,调用jspdestory()方法,销毁装载的资源,采用jsp技术开发的项目,通常使用html语言来设计和格式化静态页面的内容,而使用jsp标签和java代码片段来实现动态部分。程序开发人员可以将业务处理代码全部放到javabean中,或者把业务处理代码交给servlet、struts等其他业务控制层来处理,从而实现业务代码从视图层分离。这样jsp页面只负责显示数据即可,当需要修改业务代码时,不会影响jsp页面的代码。javabean也可以应用到其他java应用程序中,包括桌面应用程序。如图2.2所示 图2.2 jsp的处理过程通常jsp页面很少进行数据处理,只是用来实现网页的静态化页面,只是用来提取数据,不会进行业务处理。jsp技术使用java编程语言编写类xml的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。jsp将网页逻辑与网页设计的显示分离,支持可重用的基于组件的设计,使基于web的应用程序的开发变得迅速和容易。 jsp(javaserver pages)是一种动态页面技术,它的主要目的是将表示逻辑从servlet中分离出来。jsp页面由html代码和嵌入其中的java代码所组成。服务器在页面被客户端请求以后对这些java代码进行处理,然后将生成的html页面返回给客户端的浏览器。java servlet是jsp的技术基础,而且大型的web应用程序的开发需要java sevlet和jsp配合才能完成。jsp具备了java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。自jsp推出后,众多大公司都支持jsp技术的服务器,如ibm、oracle、bea公司等,所以jsp迅速成为商业应用的服务器端语言。mvc是一种设计模式,它强制的将应用程序的输入、处理、和输出分开。 使用了mvc的应用程序被分为3个核心部件:试图(view)、模型(model)、控制器(controller)。它们各司其职,既分工明确又相互合作。 首先视图接受用户输入请求,然后将请求传递给控制器,控制器再调用某个模型来处理用户的请求,在控制器的控制下,再将处理后的结果交给某个视图进行格式化输出给用户.这是经典的mvc设计执行的基本流程。mvc不仅实现了功能模块和显示模块的分离,同时它还提高了系统的可维护性、可扩展性和组件的可复用性,是一个优秀的创建软件的途径。 j2ee把mvc引入了web领域,并在此基础上架构出了一套称为model2的体系。model2体系及jsp作为视图显示输出和接受用户输入数据,servlet作为控制器处理用户请求并根据用户请求选择相应的jsp返回给用户,javabean,作为模型组件用作业务逻辑处理、管理数据的存储和一致性。视图层,控制层和实例层之间的关系如图2.3所示 图2.3 三者关系图 struts是一个按mvc模式设计的web层框架,其实它就是一个大大的servlet,这个servlet名为actionservlet,或是actionservlet的子类。我们可以在web.xml文件中将符合某种特征的所有请求交给这个servlet处理,这个servlet再参照一个配置文件(通常为/web-inf/struts-config.xml)将各个请求分别分配给不同的action去处理。 一个扩展知识点:struts的配置文件可以有多个,可以按模块配置各自的配置文件,这样可以防止配置文件的过度膨胀; 2. actionservlet把请求交给action去处理之前,会将请求参数封装成一个formbean对象(就是一个java类,这个类中的每个属性对应一个请求参数),封装成一个什么样的formbean对象呢?看配置文件。3.要说明的是, actionservlet把formbean对象传递给action的execute方法之前,可能会调用formbean的validate方法进行校验,只有校验通过后才将这个formbean对象传递给action的execute方法,否则,它将返回一个错误页面,这个错误页面由input属性指定,(看配置文件)作者为什么将这里命名为input属性,而不是error属性,我们后面结合实际的运行效果进行分析。action执行完后要返回显示的结果视图,这个结果视图是用一个actionforward对象来表示的,actionforward对象通过struts-config.xml配置文件中的配置关联到某个jsp页面,因为程序中使用的是在struts-config.xml配置文件为jsp页面设置的逻辑名,这样可以实现action程序代码与返回的jsp页面名称的解耦。谈spring这个问题的时候,首先spring中最为重要的无非就是ioc和aop,而对ioc来讲,你讲一下ioc的定义,ioc就是说对象本身的创建不依赖应用本身,而是依赖于外部容器,如果没有ioc那么我们在我们的业务类,要调用dao的方法,那么不得不做的一个动作就是创建一个dao的实现类的实例,而创建这个对象本身是跟业务无关的,而这样违反了“高内聚,低耦合”,使类与类的联系非常紧密了。即使你不用new,你使用工厂模式,使用单利模式,也跟上面说的效果是一样的,而spring本身就是一个大工厂,他帮我们造对象,帮我们管理bean对象,它帮我们注入我们所需的bean对象,这样对于以后的维护来讲,变的更为方便,也把与业务本身无关的东西提取出来了。体现了低耦合。而aop本身就是一种思想,意为面向切面编程,而spring对aop做了部分实现,(举例说明)如果没有aop,比如我们开发的系统中有发邮件,写日志,可想而知,系统中发邮件,写日志绝对的不是在一个地方用到,那么怎么办,肯定是在业务中写着重复的代码,而且干着与业务无关的事情,也就是说让发邮件,写日志跟业务一起混合在一起,那么这样肯定是不合理的。那么该怎么办,因此spring提供了aop,在你想写日志的方法给你切开,加入日志的操作,刚刚说spring是大工厂,那么对于spring的aop来讲,我更加喜欢把它比喻成化妆师,只有你让spring帮你化妆,就能达到你意想不到的效果,总的来讲spring的aop技术,他帮我们做很多与业务无关的操作,让业务层次更加清晰。另外你可以说说spring中的3中切法。让面试官高兴一下。这两个谈完后,我们在说spring是粘合剂,因为他帮我们整合struts和hibernate。spring提供了事物,具体配置不说了,例如spring给我们提供的findby方法直接继承与hibernatedaosupport。我对hibernate的理解1. 面向对象设计的软件内部运行过程可以理解成就是在不断创建各种新对象、建立对象之间的关系,调用对象的方法来改变各个对象的状态和对象消亡的过程,不管程序运行的过程和操作怎么样,本质上都是要得到一个结果,程序上一个时刻和下一个时刻的运行结果的差异就表现在内存中的对象状态发生了变化。 2.为了在关机和内存空间不够的状况下,保持程序的运行状态,需要将内存中的对象状态保存到持久化设备和从持久化设备中恢复出对象的状态,通常都是保存到关系数据库来保存大量对象信息。从java程序的运行功能上来讲,保存对象状态的功能相比系统运行的其他功能来说,应该是一个很不起眼的附属功能,java采用jdbc来实现这个功能,这个不起眼的功能却要编写大量的代码,而做的事情仅仅是保存对象和恢复对象,并且那些大量的jdbc代码并没有什么技术含量,基本上是采用一套例行公事的标准代码模板来编写,是一种苦活和重复性的工作。 3.通过数据库保存java程序运行时产生的对象和恢复对象,其实就是实现了java对象与关系数据库记录的映射关系,称为orm(即objectrelation mapping),人们可以通过封装jdbc代码来实现了这种功能,封装出来的产品称之为orm框架,hibernate就是其中的一种流行orm框架。使用hibernate框架,不用写jdbc代码,仅仅是调用一个save方法,就可以将对象保存到关系数据库中,仅仅是调用一个get方法,就可以从数据库中加载出一个对象。 4.使用hibernate的基本流程是:配置configuration对象、产生sessionfactory、创建session对象,启动事务,完成crud操作,提交事务,关闭session。 5.使用hibernate时,先要配置hibernate.cfg.xml文件,其中配置数据库连接信息和方言等,还要为每个实体配置相应的hbm.xml文件,hibernate.cfg.xml文件中需要登记每个hbm.xml文件。 6.在应用hibernate时,重点要了解session的缓存原理,级联,延迟加载和hql查询hibernate是jdbc 的轻量级的对象封装,它是一个独立的对象持久层框架,和app server,和ejb没有什么必然的联系。hibernate可以用在任何jdbc可以使用的场合,例如java应用程序的数据库访问代码,dao接口的实现类,甚至可以是bmp里面的访问数据库的代码。从这个意义上来说,hibernate和eb不是一个范畴的东西,也不存在非此即彼的关系。 hibernate是一个和jdbc密切关联的框架,所以hibernate的兼容性和jdbc驱动,和数据库都有一定的关系,但是和使用它的java程序,和app server没有任何关系,也不存在兼容性问题。 hibernate不能用来直接和entity bean做对比,只有放在整个j2ee项目的框架中才能比较。并且即使是放在软件整体框架中来看,hibernate也是做为jdbc的替代者出现的,而不是entity bean的替代者出现的,hibernate的一些传统的架构如下:1) session bean entity bean db 为了解决性能障碍的替代架构: 2) session bean dao jdbc db 使用hibernate来提高上面架构的开发效率的架构: 3) session bean dao hibernate db 就上面3个架构来分析: 1、内存消耗:采用jdbc的架构2无疑是最省内存的,hibernate的架构3次之,eb的架构1最差。 2、运行效率:如果jdbc的代码写的非常优化,那么jdbc架构运行效率最高,但是实际项目中,这一点几乎做不到,这需要程序员非常精通jdbc,运用 batch语句,调整preapredstatement的batch size和fetch size等参数,以及在必要的情况下采用结果集cache等等。而一般情况下程序员是做不到这一点的。因此hibernate架构表现出最快的运行效率。 eb的架构效率会差的很远。 3、开发效率:在有jbuilder的支持下以及简单的项目,eb架构开发效率最高,jdbc次之,hibernate最差。但是在大的项目,特别是持久层关系映射很复杂的情况下,hibernate效率高的惊人,jdbc次之,而eb架构很可能会失败。 4、分布式,安全检查,集群,负载均衡的支持,由于有sb做为facade,3个架构没有区别。当然spring属于控制层+业务层。可以代替hibernate+struts ssh的架构如图2.4所示 图2.4 ssh架构图 3 可行性分析 可行性研究主要内容是要求以全面、系统的分析为主要方法,经济效益为核心,围绕影响项目的各种因素,运用大量的数据资料论证拟建项目是否可行。对整个可行性研究提出综合分析评价,指出优缺点和建议。为了结论的需要,往往还需要加上一些附件,如试验数据、论证材料、计算图表、附图等,以增强可行性报告的说服力15。本章主要对系统开发的可行性进行具体的分析,从用户方角度考虑本系统是否可行,主要通过有力的数据和软件运行环境方面作为依据。通过经济可行性、技术可行性、应用可行性、运行可行性、等方面的分析说明本工程的技术成熟、完备,测试手段可靠,具有良好的市场拓展,它追求的是简单、易学、易懂、易用。通讯录系统,从长远来看,不仅有效管理了联系人信息,而且方便整合自己的人脉资源。该系统具有一定的扩展性,既可以用于个人,也能满足企业的简单需求。3.1 经济可行性软件的经济可行性是指软件所能带来的经济效益与开发设计所需要的投资相比,是否相适宜,同时还要看此软件能否真正给用户带来足够的经济效益,我们开发的这套系统正是考虑了现在用户对通讯录的实际需求,为用户管理自己的人力信息提高工作效率,节省工作时间,方便操作与管理而设计。本系统的开发在经济上是完全可行的。开发此软件不需要大量经费,而且是个人独立设计,可以节省许多费用,同时也可提高个人的实际动手能力。3.2 技术可行性根据该系统目标来衡量所需的技术是否具备,一般可从硬软件的性能要求、环境条件、操作人员水平和数量等方面去考虑和分析。本系统采用的轻量级的java ee架构,由struts、hibernate、spring三个框架整合的集成框架。框架一般具有即插即用的可重用性、成熟的稳定性和高度集成易用性。java ee复杂的多层结构决定了日益复杂的java ee项目需要运用框架和设计模式控制软件的质量,这三个框架已经是目前java ee web项目开发的主流框架,具有良好的团队可协作性,已经应用在多个软件系统中,所以框架的稳定性很好,技术上具有很强的可行性。3.3 应用可行性随着计算机网络技术的飞速发展,传统的手工记录联系方式手段早已无法适应人们记录大量通讯信息的需求,通过分析个人通讯录系统的基本功能需求,以及对特殊用户权限的判断,运用java基础知识和jsp编程工具及javascript脚本技术,最终实现了个人通讯录系统的基本功能,并且系统能够正常运行,各个页面交互性较好。在整个设计中运用java基础知识以及jsp编程技术进行功能编码,在系统规划中先后用数据流程图、系统功能结构图分析了个人通讯录系统所需的各种数据,详细地展现了系统的各个功能模块并给出了主要功能的运行界面图。3.4 运行可行性在现今社会,随着internet在中国的迅速发展,人们日常生活中越来越多地使用web技术来为自己的工作和学习服务。对许多用户和企业来讲,发展好最关键的就是管理好人力资源,现阶段,各种通讯录层出不群,该通讯录考虑了用户的实际需求,可以成功地提高企业的工作效率。本系统操作简单易行,所以使用前的培训也比较容易,此系统网站的管理人员对开发此应用项目的态度确定而且管理方面的条件都比较成熟。经过以上分析,运行方面是可行的。4 需求分析系统关键技术确定后,需要对项目的实际需求进行详细的需求分析,清楚地了解该项目所包含的功能。需求分析报告是对要解决问题进行详细的分析,弄清楚问题的要求,包括需要输入什么数据,要得到什么数据,估计软件风险和评估项目代价,是软件生存周期中最关键的一步,也是最困难的一步,是建立软件开发的基础15。经过需求分析要得到系统将要“做什么”,想要计算机帮助我们“做什么”同时理解在做什么的基础上抽取出其“怎么做”的本质。本章具体说明了需求分析的内容,详细描述了数据流图的组成,为下一章的总体设计打下基础。4.1 通讯录系统的需求分析经过对各中通讯录系统的考察、分析,要求本系统具有以下功能:(1)统一友好的操作界面,保证系统的易用性,方便用户的操作;(2)具备联系人信息的显示功能,方便用户及时查看联系人信息;(3)联系人信息管理功能,用户可以添加删除联系人信息;(4)人性化的联系人分类,方便用户分类检索联系人信息;(4)完善的留言功能,使得用户之间能够实现简单交流;(6)全面的后台管理功能,以方便管理员对用户信息进行管理。具体结构图如图4.1所示java界面通讯录系统管理员用户留言运用管理联系人管理个人用户管理留言管理公告管理 图4.1 系统结构图4.1.1 面向管理员用户的功能需求 (1) 修改个人密码 为了保证系统的安全性,管理员可以修改自己的登录密码。 (2) 用户管理 管理员可以管理本系统的用户信息,对用户信息进行查询、修改和查询操作。如:可以对用户删除操作,删除一些不合法的用户信息,方能对通讯录进行管理。 (3) 留言管理 该功能是提供用户之间的沟通方式,用户可以通过留言板进行简单的交流,拥有后台管理权限的用户可以管理留言。 (5) 系统公告 由于每个系统的管理都会有自己的规章制度,通过系统公告,管理员可以发布自己的系统公告,如一些新闻、用户使用须知等,用来约束用户操作,同时也为了使系统使用起来更加的方便、快捷。增强管理员之间的沟通交流,以达到沟通零距离的效果。4.1.2 面向普通用户的功能需求 (1) 个人资料用户可以通过注册拥有使用系统的权力,用户成功登录系统后可以根据需要对个人资料进行添加、修改和删除的操作,同时若用户只需修改个人密码,只需进入密码修改页面进行操作。 (2) 联系人管理通讯录最重要的功能就是记录联系人信息,通过联系人管理,用户可以有效管理自己的联系人信息,可以对联系人信息进行添加、修改、删除操作,可以根据需要输入简单的信息,查询出联系人详细信息,方便用户随时取得联系人信息。 (3) 在线留言该功能是提供用户之间的沟通方式,通过留言板模块,用户可以发布留言信息。4.2 数据流图 (1)用户资料数据流图用户注册进系统后,用户的数据便保存在了数据库中,此时,若想要对永固进行管理,只能间接地由管理员以管理员权限对用户进行管理包括对用户的删除。用户想要修改自己的个人资料可以自己进行,修改个人信息就是为了是实现此功能添加的,用户进入自己的资料库,对自己的个人信息进行修改,再次保存在数据库中,当点击保存后,用户的数据便更替了,这时的数据是可以显示在前台的。管理员登陆后,便是进入后台的操作,在后台中,也可以对用户的信息进行管理,如果对用户的信息进行了更新,那么用户登陆后可以在前台的查询个人信息栏看到已经修改了的个人信息,同样,管理员修改后的信息依旧被保存在数据库中,如若需要便等待调用。数据库中涉及的表有:用户表,用户注册的联系人的表,联系人类别表,公告列表,留言列表,联系人的列表和类别的表示一对一的关系,一个联系人只能属于一种类别;留言和用户的关系也是一对一的关系,当用户留言后,就会显示出是哪位用户留的言,这是数据库中的表的e-r关系所决定的,在研究整个程序的过程中,尤其是涉及到连接数据库的内容时,就要首先清除表与表之间的关系是什么,并且有要搞懂每个表示单表还是复合表,有时候一个表中的主键便是另一个表中的外键,通过这样的联系就可以把整个表连接起来,当查询的时候就有逻辑关系对应了。整个流程如图4.2所示图4.2用户管理数据流图 (2)联系人信息管理数据流图联系人信息的管理用户自己的过程,管理员虽然可以操作用户的数据,但关于用户自己的联系人只有用户自己可以对其进行管理。用户登录自己的账号以后,可以根据类别对自己的联系人进行添加和删除的工作,所谓类别就是用户根据联系人和自己的关系远近而设置的一种分类,目的是便于用户对自己的联系人进行快速查找,在联系人添加一栏上,可以添加联系人的手机号码,住址,邮箱,qq号等多项内容,添加好后便存储在数据库中。当用户想要查找时,可以根据多中条件查找,如,先选择用户的类别,再选择填写用户的姓名,或者其他的资料就可以自动找到用户所需要的联系,如果忘记了用户的一些信息,只记得联系人的类别,那么这是就直选则联系人的类别就可以罗列出整个用户所选类别中的信息了,所有根据由用户选择的信息的现实都在前台,后台中是数据库的存储和更新的过程,具体用到的是ssh三层架构的内容。当前台进行点击事件的操作室,后台会自动通过dao来调用在hibernate中存储的方法,从而执行sql语句,当找到所需要的list后就通过resquest显示出来。hibernate的使用是对jdbc的封装,把对数据库的操作转变成了对对象的操作,这样可以有效地缓解数据的不断更新,调出,存储对数据的压力。hibernate对原来的sql语句进行了封装,以前写很多sql语句,现在你在保存的时候直接可以用 save(对象)来实现了,节省代码。 hibernate在批量数据处理时有弱势,针对单一对象简单的增删查改,适合于hibernate,而对于批量的修改,删除,不适合用hibernate,这也是or框架的弱点;要使用数据库的特定优化机制的时候,不适合用hibernate 具体的流程如图4.3所示。图4.3联系人信息数据流图 (3)公告管理数据流图 公告发布是管理员才能进行的操作,公告是发布给用户看的,当管理员添加好公告后会有信息存储的过程,

温馨提示

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

评论

0/150

提交评论