




已阅读5页,还剩58页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基本Spring+Struts2+Hibernate的运动社区的设计与实现Spring+Struts2+Hibernate的运动社区的设计与实现毕业论文 目 录摘 要IVAbstractV前 言1第1章 开发背景与环境21.1 开发背景21.2 开发环境21.2.1 开发语言21.2.2 开发工具51.2.3 开发框架51.3 可行性研究7第2章 系统设计知识概述92.1 数据库的相关理论92.1.1 数据库的基本概念92.1.2 Oracle9i数据库简介102.2 数据库的设计112.2.1 概述112.2.2 数据库设计过程122.3 软件工程的概述122.3.1 软件的定义132.3.2 软件的开发132.3.3 软件的维护142.4 需求分析14第3章 总体设计163.1 系统过程设计163.2 系统模块设计163.2.1总体设计框架163.2.2用户基本信息管理模块设计框架183.2.3短管理模块设计框架183.2.4联系人管理模块设计框架193.2.5论坛管理管理模块设计框架193.2.6后台管理模块设计框架203.3 数据库结构设计21第4章 系统详细设计284.1 建立数据库284.2 建立连接294.3 配置模块294.3.1 DAO(Data Access Object)层的配置模块294.3.2 Service(业务逻辑)层的配置模块314.3. 3 配置Struts.xml文件使Spring框架和Struts2框架完成自动集成324.3. 4配置web.xml374.4 日志设计404.4. 1 配置日志模块404.4. 2 日志信息404.5 程序设计414.5.1 用户登陆功能设计414.5.2 修改个人空间功能设计444.5.3 发送信息功能设计474.5.4 收件箱的功能设计484.5 5 查询好友的功能设计504.5 6 运动论坛查询所有贴子功能设计514.5 7 后台管理会员管理功能设计534.5 8 后台管理积分动作管理功能设计544.6 对本社区的说明554.6.1 查询数据库的说明554.6.2 使用本社区的说明57第5章 系统测试与维护595.1 软件测试595.2 运行和维护60结 论61注释62参考文献63致谢6421基本Spring+Struts2+Hibernate的运动社区的设计与实现第1章 开发背景与环境1.1 开发背景21世纪是知识经济时代,计算机网络作为这一时代重要的生产工具,给各个国家带来了巨大的发展机遇。为了在以用户为中心的市场竞争中获胜,各单位须对不断变化的市场做出快速反应,把单位各关键部门结合成一体,形成一个坚强的信息共享共同体。国内一些中小型企业为了提高自身的工作效率,适应市场的需要,都实现了办公自动化(OA)1。计算机已经成为我们学习和工作的得力助手。目前,计算机的价格十分低廉,性能却有了长足的进步。它已经被应用于许多领域,尤其是在管理领域,它可以简化大量繁琐的工作,提高工作效率,更重要的是能提高保密文件的安全性。随着计算机的发展和普及,它已经成为人们获取信息的一种方便、快捷、有效的手段。现在我国很多管理机构信息的管理水平还停留在纸介质的基础上,这样的机制已经不能适应时代的发展,必然被以计算机为基础的信息管理所取代。网运动好者社区系统是专门为运动爱好者提供的一个交流的平台,使跑步爱好者不需要进行面对面的交流,只需在网上查看运动爱好者的个人空间,从而了解他人的跑步爱好习惯,如果与自己的爱好相同或相似,就可以加对方为好友,并且能够发送短信息给自己的跑步好友。而且运动爱好者之间可以在运动论坛中交流彼此对运动的看法道出运动爱好者之间的心声。除此之外本系统管理者还可以通过后台管理对注册的会员信息和积分进行管理。1.2 开发环境1.2.1 开发语言JSP语言的简介及其优点1.一次编译,多次、多处运行,代码的执行效率高JSP的脚本语言是JAVA语言,因此它具有JAVA语言的一切特性。同时,JSP也支持现在大部分平台。当JSP第一次被请求时,JSP页面转换成Servlet,然后被编译成.calss文件,以后(除非页面有改动或Web服务器被重新启动)再有客户请求该JSP页面时,JSP页面不被重新编译,而是直接执行已编译好的.class文件,因此执行效率特别高。2.组件的重用性可重用的、跨平台的JavaBeans和EJB(Enterprise JavaBeans)组件,为JSP程序的开发提供方便,我们可以将复杂的处理程序(如页面中需要显示的动态内容及对数据库的操作)放到组件中。可以多次使用这些组件,极大的减少了在JSP页面中重写重复的代码。3.将内容的生成和显示进行分离使用JSP技术,Web页面开发人员可以使用HTML或者XML标识来设计和格式化最终页面。使用JSP标识或者脚本来生成页面上的动态内容。生成动态内容的语句一般被封装在JavaBean组件、EJB组件或JSP脚本段中。这样,页面的设计人员和页面的编程人员可以同步进行。同时在客户端通过查看源文件,看不到JSP标识的语句,更看不到JavaBean和EJB组件,也可以保护源程序的代码。Servlet语言简介及其优点Servlet是一种运行在支持Java语言的服务器上的组件,它与普通Java类的区别就是它运行在服务器上。使用Servlet可以很轻松地扩展Java网络服务器的功能,为网络客户提供安全可靠的、易于移植的动态网页。Servlet容器的作用是负责处理客户请求。当客户请求来到时,Servlet容器获取请求,然后调用某个Servlet,并把Servlet的执行结果返回给客户。当客户请求某个资源时,Servlet容器使用ServletRequest对象把客户的请求信息封装起来,然后调用Java Servlet API中定义的Servlet的一些生命周期方法,完成Servlet的执行,接着把Servlet执行的要返回给客户的结果封装到ServletResponse对象中,最后Servlet容器把客户的请求发送给客户,完成为客户的一次服务过程。Servlet容器的作用如图1-1所示。图1-1 Servlet容器的作用Servlet的优势在于:1.高效率:使用线程取代操作系统进程,能够手工的控制线程,比以前单一的使用操作系统的进程效率高。2.功能强大:提供数据共享,连接共享,持续存储等诸多功能,强大的功能性使其具有强大的实用性。3.可移植性强:几乎可以在所有操作系统(如Unix、Windows操作系统)、所有服务器上(如Tomcat,Weblogic服务器)运行。4.花费少:有众多免费或收费低廉的服务器可以选择,降低了使用的成本。5.安全:不设计外壳程序,也就杜绝了使用转移符的攻击。没有缓冲区溢出的问题。6.主流:目前市场上大部分产品都使用该技术。Spring 语言简介及其优点Spring是一个开源框架,它由RodJohnson创建。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。 目的:解决企业应用开发的复杂性 功能:使用基本的JavaBean代替EJB,并提供了更多的企业应用功能 范围:任何Java应用 简单来说,Spring是一个轻量级的控制反转(IOC)和面向切面(AOP)的容器框架。 1.轻量从大小与开销两方面而言Spring都是轻量的。完整的Spring框架可以在一个大小只有1MB多的JAR文件里发布。并且Spring所需的处理开销也是微不足道的。此外,Spring是非侵入式的:典型地,Spring应用中的对象不依赖于Spring的特定类。 2.控制反转Spring通过一种称作控制反转(IOC)的技术促进了松耦合。当应用了IOC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。你可以认为IOC与JNDI相反不是对象从容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它。 3.面向切面Spring提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务(例如审计(auditing)和事务()管理)进行内聚性的开发。应用对象只实现它们应该做的完成业务逻辑仅此而已。它们并不负责(甚至是意识)其它的系统级关注点,例如日志或事务支持。 4.容器Spring包含并管理应用对象的配置和生命周期,在这个意义上它是一种容器,你可以配置你的每个bean如何被创建基于一个可配置原型(prototype),你的bean可以创建一个单独的实例或者每次需要时都生成一个新的实例以及它们是如何相互关联的。然而,Spring不应该被混同于传统的重量级的EJB容器,它们经常是庞大与笨重的,难以使用。 5.框架Spring可以将简单的组件配置、组合成为复杂的应用。在Spring中,应用对象被声明式地组合,典型地是在一个XML文件里。Spring也提供了很多基础功能(事务管理、持久化框架集成等等),将应用逻辑的开发留给了你。Hibernate语言简介及其优点Hibernate是一个数据持久层框架,是一种实现对象和关系之间映射(O/R Mapping)的工具,它对JDBC进行了轻量级的对象封装,使程序员可以使用对象编程思想来操作数据库。它不仅提供了从Java类到数据表的映射,也提供了数据查询和恢复机制。相对于使用JDBC和SQL来操作数据库,使用Hibernate能大大的提高实现的效率。Hibernate框架用配置文件的形式来定义Java对象和数据表之间的映射关系,同时在更深的层面将数据表之间的关系解释为Java对象之间的继承及包含等关系。通过使用HQL语句将复杂的关系算法用对象的方式描述,在很大程度上简化了对数据的查询,加快了开发的效率。在Hibernate中有一个简单而直观的API,用于对数据库所表示的对象执行查询。要创建或修改这些对象,只需在程序中与它们进行交互,然后告诉Hibernate保存即可。这样,大量封装持久化操作的业务逻辑不再需要编写烦琐的JDBC语句,从而使数据持久层得到了极大的简化。1.2.2 开发工具运用MyEclipse开发工具,该开发工具是Eclipse的一个插件。Eclipse本身就是一个功能非常强大的开发工具,而MyEclipse在功能上与Tomcat进行了集成,并且能做到自动打包,并将包自动部署到服务器上。这从很大程度上提高了开发的效率,节约了开发的时间。MyEclipse提供了对多重平台特性的支持。开发者可以使用他们感觉最舒适、最熟悉的平台,例如Windows、Linux等。Eclipse对每个平台都有其单独的图形工具包,这使得应用程序具有接近本地操作系统的外观和更好的性能。1.2.3 开发框架用Struts2实现MVC架构。MVC(Model-View-Controller)由Trygve Reenskaug提出,首先被应用在SmallTalk-80环境中,是许多交互和界面系统的构成基础。根据界面设计可变性的需求,MVC把交互系统的组成分解成模型、视图、控制器三部分。6模型(Model)是软件所处理问题逻辑在独立于外在显示内容和形式情况下的内在抽象,封装了问题的核心数据、逻辑和功能的计算关系,独立于具体的界面表达和I/O操作。视图(View)把表示模型数据及逻辑关系和状态的信息及特定形式展示给用户。它从模型获得显示信息,对于相同的信息可以有多个不同的显示形式或视图。控制器(Controller)是处理用户与软件的交互操作的,其职责是控制提供模型中任何变化的传播,确保用户界面于模型间的对应联系;它接受用户的输入,将输入反馈给模型,进而实现对模型的计算控制,是使模型和视图协调工作的部件。通常一个视图对应一个控制器。模型、视图与控制器的分离,使得一个模型可以具有多个显示视图。如果用户通过某个视图的控制器改变了模型的数据,所有其它依赖于这些数据的视图都应反映到这些变化。因此,无论 何时发生了何种数据变化,控制器都会将变化通知所有的视图,导致显示的更新。这实际上是一种模型的变化传播机制。Struts2是Struts社区和WebWork社区的共同成果,我们甚至可以说,Struts2是WebWork的升级版,他采用的正是WebWork的核心,所以,Struts2并不是一个不成熟的产品,相反,构建在WebWork基础之上的Struts2是一个运行稳定、性能优异、设计成熟的WEB框架。一个请求在Struts2框架中的处理大概分为以下几个步骤:1、客户端初始化一个指向Servlet容器(例如Tomcat)的请求;2、这个请求经过一系列的过滤器(Filter)(这些过滤器中有一个叫做ActionContextCleanUp的可选过滤器,这个过滤器对于Struts2和其他框架的集成很有帮助,例如:SiteMesh Plugin);3、接着FilterDispatcher被调用,FilterDispatcher询问ActionMapper来决定这个请求是否需要调用某个Action;4、如果ActionMapper决定需要调用某个Action,FilterDispatcher把请求的处理交给ActionProxy;5、ActionProxy通过Configuration Manager询问框架的配置文件,找到需要调用的Action类;6、ActionProxy创建一个ActionInvocation的实例。7、ActionInvocation实例使用命名模式来调用,在调用Action的过程前后,涉及到相关拦截器(Intercepter)的调用。8、一旦Action执行完毕,ActionInvocation负责根据struts.xml中的配置找到对应的返回结果。返回结果通常是(但不总是,也可能是另外的一个Action链)一个需要被表示的JSP或者FreeMarker的模版。在表示的过程中可以使用Struts2框架中继承的标签。在这个过程中需要涉及到ActionMapper。1.2.4 SSH(Spring、 Struts2和 Hibernate)组合的优点:典型的J2EE三层结构,分为表现层、中间层(业务逻辑层)和数据服务层。三层体系将业务规则、数据访问及合法性校验等工作放在中间层处理。客户端不直接与数据库交互,而是通过组件与中间层建立连接,再由中间层与数据库交互。 表现层是传统的JSP技术,自1999年问世以来,经过多年的发展,其广泛的应用和稳定的表现,为其作为表现层技术打下了坚实的基础。 中间层采用的是流行的Spring+Hibernate,为了将控制层与业务逻辑层分离,又细分为以下几种。 Web层,就是MVC模式里面的“C”(controller),负责控制业务逻辑层与表现层的交互,调用业务逻辑层,并将业务数据返回给表现层作组织表现,该系统的MVC框架采用Struts。 Service层(就是业务逻辑层),负责实现业务逻辑。业务逻辑层以DAO层为基础,通过对DAO组件的正面模式包装,完成系统所要求的业务逻辑。 DAO层,负责与持久化对象交互。该层封装了数据的增、删、查、改的操作。 PO,持久化对象。通过实体关系映射工具将关系型数据库的数据映射成对象,很方便地实现以面向对象方式操作数据库,该系统采用Hibernate作为ORM框架。 Spring的作用贯穿了整个中间层,将Web层、Service层、DAO层及PO无缝整合,其数据服务层用来存放数据。 一个良好的框架可以让开发人员减轻重新建立解决复杂问题方案的负担和精力;它可以被扩展以进行内部的定制化;并且有强大的用户社区来支持它。框架通常能很好的解决一个问题。然而,你的应用是分层的,可能每一个层都需要各自的框架。仅仅解决UI问题并不意味着你能够很好的将业务逻辑和持久性逻辑和UI 组件很好的耦合。 在传统的Model 1的程序结构中,只要有一点小的需求发生改变,将意味着放弃整个页面。或者改写。虽然前期的开发速度快,除非可以保证以后永远不会改变应用的结构,否则不要采用Model 1的结构。 采用Hibernate作为持久层技术的最大的好处在于:可以完全以面向对象的方式进行系统分析、系统设计。 DAO模式需要为每个DAO组件编写DAO接口,同时至少提供一个实现类,根据不同需要,可能有多个实现类。用Spring容器代替DAO工厂 通常情况下,引入接口就不可避免需要引入工厂来负责DAO组件的生成。Spring实现了两种基本模式:单态模式和工厂模式。而使用Spring可以完全避免使用工厂模式,因为Spring就是个功能非常强大的工厂。因此,完全可以让Spring充当DAO工厂。 由Spring充当DAO工厂时,无须程序员自己实现工厂模式,只需要将DAO组件配置在Spring容器中,由ApplicationContext负责管理DAO组件的创建即可。借助于Spring提供的依赖注入,其他组件甚至不用访问工厂,一样可以直接使用DAO实例。归纳起来,网络跑步爱好者社区系统的开发与运行环境如下。开发环境:Unix开发工具:MyEclipse开发框架:MVC数据库管理系统:Oracle9i1.3 可行性研究可行性分析的目的,就是用最小的代价在尽可能短的时间内确定问题是否能够解决。Oracle9i具有强大的数据库支持功能,能够支持现今大多流行的数据库,可以方便的实现与各种数据库的连接,并且Oracle具有良好的用户操作界面。Oracle9i可以通过如SQL、Hibernate、JDBC等特定技术,方便地存储、检索和处理服务器平台上的关键信息,可以接受多种格式的数据,从而方便了用户在不同系统之间进行数据转换。Eclipse提供了强大的数据库应用程序开发功能和数据库辅助工具,程序员利用这些工具能够迅速开发出功能强大的数据库应用程序。此系统主要解决跑步爱好者信息管理的一系列问题,如添加、修改、删除、查询等,因为本管理系统有较高的保密性,要求对人员的各种信息妥善管理,方便用户使用、且系统安全、高效、可靠。通过需求阶段对该系统的可行性进行了彻底分析,随着计算机硬件的发展,各项功能日趋完善,使用MyEclipse、Oracle9i开发此系统无论从技术上、经济上、硬件上和操作上都是可行的。1.技术分析技术分析是最难决断和最关键的问题,它主要是从技术的角度对系统实现的可行性进行研究。经研究,确定使用MyEclipse作为开发工具,其强大的功能能够满足数据库设计上的需要,并能够完成本系统中待实现的所有功能。2.操作分析操作分析用来确定系统的运行方式是否可行。经研究,本系统属于(网络)管理信息系统。运行环境:pentium200以上的CPU,512M以上的内存,windows2000以上的操作系统。从运行上可以在网络跑步爱好者社区系统中实现。并非任何问题都有简单明显的解决办法,事实上,许多问题不可能在预定的系统规模或时间期限之内解决。如果问题没有可行的解,那么花费在这项工程上的任何时间、人力、软硬件资源和经费,都是无谓的浪费。9基本Spring+Struts2+Hibernate的运动社区的设计与实现第2章 系统设计知识概述程序开发数据存取技术数据库在内容正式叙述之前,我们有必要先了解数据库与数据库相关联的一些知识,及软件工程的概述,了解它们对我们的开发将会有全局性的作用。数据库系统开发的流程可以大致用下面的图2-1来表示:图2-1 数据库系统开发大致流程图2.1 数据库的相关理论2.1.1 数据库的基本概念1.概念模型2是在现实世界中对客观事物及其联系的一种抽象描述。涉及到下面几个术语:(1).实体:我们把客观存在并且可以相互区别的事物称为实体。实体可以是实际事物,也可以是抽象事件。如一个职工、一场比赛等。(2).实体集:同一类实体的集合称为实体集。如全体职工。注意区分型与值的概念。如每个职工是职工实体“型”的一个具体“值”。属性:描述实体的特性称为属性。如职工的职工号,姓名,性别,出生日期,职称等关键字,如果某个属性或属性组合的值能唯一地标识出实体集中的每一个实体,可以选作关键字。用作标识的关键字,也称为码。如“职工号”就可作为关键字。2.ER模型ER模型(实体联系模型)简称ER图。它是描述概念世界,建立概念模型的实用工具。ER图包括三个要素:(1).实体(型)用矩形框表示,框内标注实体名称。(2).属性用椭圆形表示,并用连线与实体连接起来。(3).实体之间的联系用菱形框表示,框内标注联系名称,并用连线将菱形框分别与有关实体相连,并在连线上注明联系类型。联系归结为三种类型:.一对一联系(1:1)设A、B为两个实体集。若A中的每个实体至多和B中的一个实体有联系,反过来,B中的每个实体至多和A中的一个实体有联系,称A对B或B对A是1:1联系。注意,1:1联系不一定都是一一对应的关系。可能存在着无对应。如一个公司只有一个总经理,一个总经理不能同时在其它公司再兼任总经理,某公司的总经理也可能暂缺。.一对多联系(1:n)如果A实体集中的每个实体可以和B中的几个实体有联系,而B中的每个实体至我和A中的一个实体有联系,那么A对B属于1:n联系。如一个部门有多名职工,而一名职工只在一个部门就职,部门与职工属于一对多的联系。.多对多联系(m:n)若实体集A中的每个实体可与和B中的多个实体有联系,反过来,B中的每个实体也可以与A中的多个实体有联系,称A对B或B对A是m:n联系。如一个学生可以选修多门课程,一门课程由多个学生选修,学生和课程间存在多对多的联系。必须强调指出,有时联系也有属性,这类属性不属于任一实体只能属于联系。3.数据模型简介数据模型由三部分组成,即模型结构、数据操作和完整性规则。这里主要介绍模型结构。DBMS所支持的数据模型分为四种:层次模型、网状模型、关系模型、面向对象模型。其中第四种数据模型目前并未成熟,因此传统的说法有前三种数据模型。(1).基本层次联系层次模型和网状模型有共同点,可以把它们统称为格式化模型。基本层次联系就是包括两结点和一边的基本单元,两个实体间的有向边代表的基本层次联系表示一对多的联系。通常把表示1的实体放在上方,称为父结点,把表示N的实体放在下面,称为子结点。(2).层次数据模型用村形结构表示实体及其之间的联系的模型称为层次模型。该模型的实际存储数据由链接指针来体现联系。特点:有且仅有一个结点无父结点,此结点即为根结点;其它结点有且仅有一个父结点。适合用表示一对多的联系。(3).网状模型用网状结构表示实体及其之间的联系的模型称为网状模型。允许结点有多于一个的父结点,可以有一个以上的结点无父结点。适合用于表示多对多的联系。层次模型和网状模型从本质上都是一样的。存在的缺陷:难以实现系统扩充,插入或删除数据时,涉及到大量链接指针的调整。2.1.2 Oracle9i数据库简介Oracle9i3是以高级结构化查询语言(Sql)为基础的大型关系数据库,通俗地讲它是用方便逻辑管理的语言操纵大量有规律数据的集合。是目前最流行的客户/服务器(Client/Server)体系结构的数据库之一。Oracle9i作为第一套完整、简单的软件基层结构,展现了前所未有的可扩展性、高性能和应用程序所需要的稳定性,是专门为因特网系统提供的新一代智能型集成应用软件。Oracle9i增强了Oracle的能力,使之在低档软硬件平台上用较少的资源就可以支持更多的用户,而在高档平台上可以支持成百上千个用户。它提供了基于角色(Role)分工的安全保密管理。在数据库管理功能、完整性检查、安全性、一致性方面都有良好的表现。加上它有许多优秀的前台开发工具如 Power Build、Sql*Forms、Visia Basic 等,可以快速发生成基于客户端PC 平台的应用程序,并具有良好的移植性。Oracle9i数据库在物理上是存储于硬盘的各种文件。它是活动的,可扩充的,随着数据的添加和应用程序的增大而变化。在逻辑上是由许多表空间构成。主要分为系统表空间和非系统表空间。非系统表空间内存储着各项应用的数据、索引、程序等相关信息。让我们来看一下以上Oracle9i的新的特性:Oracle9i有超过400项的新特性及技术改进,有了PL/SQL Native Compile,为提高PL/SQL的执行速度,用户在不需要修改PL/SQL语句,只需对现有的PL/SQL语句进行编译,这样根本上改变了Oracle9i之前PL/SQL需要边解释边执行的状况,Oracle9i 将Java XML Developer Kit (XDK) 预装到Oracle9i中,开发者能够轻松地访问基于W3C的功能,这些功能在Oracle9i中生成,操纵,转换灭存储XML格式的数据。此外Oracle9i也推出新的数据类型XMLtype,方便并加速对XML数据的存取。Compressed Bitmap Index 压缩位图索引是Oracle9i的专利的技术,它所带来的优势包括:性能极大的提高查询的执行时间显著加快,特别是对那些在索引栏中包含多种条件或选择了大量行的查询尤其如此。相对较少的存储花费,它对位图索引的存储不是动态生成的,不会产生巨大的存储量。由于在查询执行中采用了压缩的位图索引,提高了查询执行的性能。降低了维护需求和费用。Oracle9i自动地维护和使用一次生成的索引。修改数据后是自动的对索引进行相应的调整。Bitmap Join Index (位映射或位图连接索引)允许用户对两个或两个以上表的连接Join建立位映射索引,大大提高了表连接的查询速度。2.2 数据库的设计数据是信息系统处理的对象,数据库设计是系统设计的重要组成部分。2.2.1 概述数据库设计是在需求分析的基础上,如何对应用系统所设计的数据进行分类、描述、关联和存取的一种技术。数据库设计通常是在一个通用的DBMS支持下进行的,对于一个给定的应用环境,构造最优的数据模式,使之能够有效的存储数据,满足各种用户的需要。数据库是信息系统的核心和基础,它将大量的数据按照一定的模型组织起来,提供存储、维护和检索数据的功能。只有对数据库进行合理的逻辑设计和有效的物理设计,才能开发出完善而高效的信息系统,用户才能方便、及时核准取得从数据库中获取所需的信息。2.2.2 数据库设计过程对于信息管理系统,数据基本上都是使用数据库进行管理。数据库设计是对保存管理系统数据的数据库结构进行设计,对整个系统的开发具有非常重要的作用。数据库的设计通常分为6个阶段,分别是需求分析、概念结构设计、逻辑结构设计、物理设计、数据库实施阶段、运行和维护阶段11。1.需求分析需求分析包括收集和分析用户对数据的需求,它是数据库设计的第一阶段,也是非常重要的阶段。这一阶段收集到的基础数和数据流图是概念结构设计的基础。2.概念结构设计概念结构设计是独立于数据库管理系统的逻辑结构,它也独立于具体的机器。E-R模型是描述概念结构设计的有利工具。3.逻辑结构设计逻辑结构设计是将概念结构转换为某一数据库管理系统(DBMS)所支持。4.物理设计物理设计是指数据库在物理设备上的存储结构和存取方法,它依赖于具体的计算机系统。但随着计算机存储设备性能的提高和数据库管理系统技术的发展,已经减少了对存储空间、分块原则和块因子等因素的考虑。5.数据库实施阶段该阶段的主要工作是利用DBMS系统提供的数据定义的语言创建数据库表,向数据库中录入数据。6.运行和维护阶段如果是新建的数据库,还应包括试运行,其主要工作包括运行应用程序、对数据库执行各种操作、测试应用程序的功能和系统性能指标。维护阶段的主要工作是对数据安全性的控制、数据备份和恢复、性能的监视、分析和改进,以及数据库表结构的修改和调整。2.3 软件工程的概述软件工程是指导计算机软件和维护的工程学科,采用工程的概念、原理和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,这就是软件工程19。软件工程的七条基本原理如下12。1.阶段的生命周期计划严格管理。2.坚持进行阶段评审。3.实行严格的产品控制。4.采用现代程序设计技术。5.结果应能清楚的审查。6.开发小组的人员应该少而精。7.承认不断改进软件工程实践的必要性。2.3.1 软件的定义软件定义阶段的任务是确定软件开发工程必须完成的总目标,即确定工程的可行性;导出实现工程目标应该采用的策略及系统必须完成的功能;估计完成该工程需要的资源和成本,制定工程进度表。通常,软件定义阶段又进一步划分为三个子阶段,即问题定义、可行性研究和需求分析13。1.问题的定义问题定义阶段必须回答的关键问题是:“要解决的问题是什么?”如果不清楚问题是什么就试图解决,显然是盲目的,只会白白浪费时间和金钱,最终得出的结果很可能是毫无意义的,扼要的写出对问题的理解、工程目标和规模的书面报告,改正和理解不准确的地方,得出一份双方都满意的有关问题定义的文档。2.可行性研究本阶段要回答的关键问题是:“上一个阶段确定的问题有行的通的解决办法吗?”为了回答这个问题,需要进行一次大大压缩和简化了的系统分析和设计过程,也就是在较抽象的高层次上进行分析和设计。可行性研究应该比较简短,因为这个阶段不是具体解决问题,而是研究问题的范围,探索可行的解决办法,并确定是否值得解决。可行性研究阶段应该导出系统的高层逻辑模型,并且在次基础上更准确、更具体的确定工程规模和目标,更精确的估计系统的成本和效益,仔细的完成成本、效益分析。3.需求分析这个阶段的任务是确定“为了解决这个问题,目标系统必须做什么?”确定目标系统应该具备哪些功能。软件开发人员在需求分析阶段必须和用户密切配合,充分交流信息,以得出经过用户确认的完整准确的系统逻辑模型,但不必考虑实现的细节。2.3.2 软件的开发开发阶段的任务是具体设计和实现在前一个时期定义的软件。它通常由总体设计、详细设计、编码和单元测试、综合测试等四个子阶段组成14。1.总体设计本阶段必须回答的问题是:“概括的说,究竟如何解决这个问题?”即确定解决问题的策略及实现目标系统所需要的各种程序。通常要用层次图或结构图来描绘软件的结构。2.详细设计总体设计阶段应以比较抽象的方式提出解决问题的办法。详细设计阶段的任务就是把解法具体化,也就是回答关键问题:“应该怎样具体的实现这个系统呢?”这个阶段的任务还不是编写程序,而是设计出程序的详细规格说明。3.编码和单元测试这个阶段的关键任务是编写正确的容易理解、容易维护的程序模块。程序员应该根据目标系统的性质和实际环境,选择适当的程序设计语言,把详细设计的结果翻译成用选定的语言书写的程序,并且仔细测试编写出来的每个程序模块。4.综合测试这个阶段的关键任务是通过各种类型的测试使软件达到预定要求。2.3.3 软件的维护维护时期的主要任务是使软件能够持久的满足用户的需求。包括软件在使用过程中发现错误时应该加以改正;环境改变时应该修改软件以适应新的环境;用户有新的要求时应当及时改进软件以满足用户的新需要。2.4 需求分析管理系统开发的起点是需求分析,这是整个系统开发中最重要的一步,它决定着开发的成败。需求分析是软件定义时期的最后一个阶段,它的基本任务是准确的回答“系统必须做什么”这个问题。需求分析的任务还不是确定系统怎样完成它的工作,而仅仅是确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求。需求分析的结果是系统开发的基础,关系到工程的成败和软件产品的质量。因此,必须用行之有效的方法对软件需求进行严格的审查检验。结合“基于Spring+Struts2+Hibernate的运动社区”的用户信息,切实了解他们整个系统期望具有的功能,分析他们的信息特点,与其共同决定系统具有以下功能。1.用户登录:已经注册的用户可以直接登录,通过验证用户名和密码后就可以进入主页面;没注册的用户先注册,注册成功后返回登陆界面;在登录过程中,忘记密码的用户可以根据提示问题和答案找回密码。2会员信息管理:用户登录后可以查看自己的信息也可以修改自己的基本信息,并可以创建或修改自己的个性空间。3.短信息管理:用户可以给自己的好友发短信或回复好友的来信,并可以查看自己的发件箱或收件箱,以查看发送给好友或收到好友的短信。4.好友管理:包括好友速配,好友名单,黑名单三个子模块.在好友速配时可以随机速配一个好友,也可以根据条件查询好友;在好友名单中,可以把好友移动到黑名单;在黑名单中,可以彻底删除好友,也把黑名单中的好友移动到好友名单中。5.系统可以根据登陆的次数给用户加上相应的积分,也可以在用户注册时给相应的介绍人加上相应的积分。6运动论坛管理:用户可以在论坛中发表自己的心声唤起其它会员的响应,其它会员可以查看会员发表的文章并且作出自己的评论。除此之外用户还可以查看作者的相关信息。7管理员后台管理:管理员可以查看整个系统的会员的信息记录。管理员可以注销或恢复一些用户的账号。注销的用户账号用户不能再通过这个账号登陆。管理员还可以查看会员的积分以及会员获得积分的原因。此外管理员还可以对所有的积分动作进行管理,管理员可以增加一个积会动作也可以对某个积分动作进行修改或删除。还可以注册一个新的管理员账号。8为了便于管理员对这个系统的维护本系统还提供了一个写日志的功能。系统把每天出现的异常写进日志里面。管理员通过日志信息可以很轻松查看系统运行情况能十分方便的维护这个系统。16基本Spring+Struts2+Hibernate的运动社区的设计与实现第3章 总体设计3.1 系统过程设计首先根据需求分析和功能分析设计出数据库,包括各个数据表和数据表结构图的详细设计。由功能分析可知,本系统主要包括用会员基本信息管理,短信息管理,好友管理、管理员后台管理等五大主要模块。实现功能模块时,采用先模块化,后集成的方式。即对系统各个功能模块分别独立设计和调试,在创建系统主窗体时再将各个功能模块通过主窗体的菜单系统集成到一起,最后进行系统整体设计调试。在访问数据库时,采用公用数据模块访问数据库需要的对象。该模块在各个功能模块中被直接调用,避免对数据库的反复连接,并可减少代码编写,从而提高系统开发效率。3.2 系统模块设计3.2.1总体设计框架在前面的系统规划与需求分析的基础上,对该系统进行了总体设计,不仅能满足用户修改个人的各种基本信息,能够创建和修改自己的个性空间,使更多的跑步爱好者了解自己,能够随机查找一个好友或根据条件查找到多个好友,而且还能够给自己的好友发送短信,交流各自的跑步心得。管理员管理注册管理员基于Spring+Struts2+Hibernate的运动社区的设计与实现用户信息管理短信息管理好友信息管理运动论坛管理后台信息管理个人基本信息管理用户注册管理个性空间管理发件箱信息管理修改基本信息查看基本信息创建个性空间修改个性空间新建短信息收件箱信息管理查看已收信息删除已收信息查看已收信息删除已收信息回复信息好友速配好友管理黑名单管理随机查找好友多条件查找添加好友删除好友加入黑名单查看黑名单加为好友删除黑名单发表新贴查看作者信息回复贴子会员管理积分动作管理会员信息管理会员身份管理增加积分动作修改积分动作图3-1 功能模块结构图3.2.2用户基本信息管理模块设计框架首先要实现它的基本功能,如用户的注册,登陆,密码的找回,信息的修改等最基本的功能,而这些是需要用户来完成的,也就是说可以定义在用户管理的模块中。为了更好的展示用户的的个人特征,也就是我们平时说的个性化,我们可以加上一个个人空间的管理。于是我们可以定义出用户管理信息的用例图图3-2 用户基本信息管理3.2.3短管理模块设计框架为了方便用户间的交流系统提供一个收发信息的功能,它包括短信的创建,对已收信息和已发信息的删除和查看等功能。其用例图如下图3-3 短信息管理3.2.4联系人管理模块设计框架联系人管理模块主要要实现对好友的管理和黑名单的管理可用下面的用例图来表示图3-4 联系人管理3.2.5论坛管理管理模块设计框架运动爱好者可以在运动论坛中发表自己对某一个观点的看法找到自己的知音。可以通过交流结识更多朋友。图3-5论坛管理管理3.2.6后台管理模块设计框架管理员为了更好的维护这个系统设计了后台管理模块主要实现对会员的管理、对积分动作的管理和对管理员的管理。其用例图可用下图表示:图3-6 后台管理管理根据系统功能模块结构图和管理流程,以及网络运动爱好者社区系统的需要总结出如下的数据字典。1.系统用户数据:包含的数据项有系统用户名,密码,性别,年龄,邮箱,省份,地址,密码提示问题,密码提示答案等。2.用户个人空间数据:包含的数据项有跑步观点,跑步时间,跑步地点,跑步习惯,电话,上传的图片等。3.短信息数据:包含的数据项有发送者,接收者,发送时间,标题,内容等。4.好友名单数据:包含的数据项有自己的名字,好友的名字。5.黑名单数据:包含的数据项有自己的名字,黑名单的名字。6.用户发表的贴子的数据:包括贴子的主题,内容,发表者,发表时间等。7.贴子的回复信息数据:包括回复的信息,回复者的信息,回复时间等。8.管理员数据:包括管理员的名字,管理员的密码,以及对管理员的描述。9.省份数据:包括省份的代码,省份的名称,省份的id值10.积分等级数据:最小积分,最大积分,等级名称,对应头像11.积分动作数据:积分动作名称,可获积分,动作描述12.积分记录数据:用户名称,获得时间等。3.3 数据库结构设计数据库在一个信息管理系统中占有非常重要的地位,数据库结构设计的好坏将直接影响到系统的效率及系统实现的效果。合理的数据结构设计可以提高数据存储的效率,保证数据的完整性和一致性。合理的数据库结构也将有利于程序的实现15。1.数据库的需求分析用户的需求具体体现在各种信息的添加、修改、删除和查询,这种数据库结构能够满足各种信息的输入和输出。收集基本数据、数据结构及数据处理的流程,组成一份详尽的数据字典,为后面的具体设计打下基础。2.数据库创建的意义数据表是一组有意义的,相对完整的数据的集合,它是构成数据库的最直接的单元。换句话说,数据库是由一个或多个数据表直接构成的。3.根据数据字典和功能模块图设计出网络运动爱好者社区系统数据库中的各个数据表。根据小区管理要求得到以下几类数据表。(1).用户信息数据表3-1,用于保存跑步爱好者的详细地址及联系方式,数据表名、” memberinfo_wuql”表3-1 用户信息表字段名字段类型约束或索引描述IDNumber(Sequence)PK记录流水号NickNameVarchar2(20)Not Null用户昵称PasswordVarchar2(50)Not NullMD5加密口令,页面上限制为16字节GenderNvarchar2(1)Not Null性别,男或女AgeNumberNot Null年龄EmailNvarchar2(100)Not Null电子邮件PasswordQuestionNvarchar2(200)密码提示问题PasswordAnswerNvarchar2(200)密码提示问题答案ProvinceCityNvarchar2(20)所在省市AddressNvarchar2(200)地址PhoneVarchar2(50)联系电话PointNumberDefault=0当前积分RecommenderVarchar2(20)推荐人RegisterDateDate注册时间LatestDateDate上次上线时间StatusNumberDefault=00-正常 1-注销IsOnlineNumberDefault=00-下线 1-在线GradeIdNumber等级ID建表语句如下所示:create table memberinfo_wuql (id number primary key,nickname varchar2(20) not null,password varchar2(50) not null,gender varchar2(1) not null,age number not null,email varchar2(100) not null,provincecity va
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 离婚协议书中特定子女教育支出分担及保障协议范本
- 体育赛事赞助担保合同风险规避与权益保障
- 电力施工合同签订与施工期合同履行及竣工验收规范
- 物业服务合同终止与社区环境修复及恢复协议
- 智算中心扩建项目技术方案
- 化工车间安全员考核及答案
- 博望区营销推广计划方案
- 恩施环保应急预案(3篇)
- 教育质量评估与认证体系2025年行业标准化与认证体系构建策略报告
- 2025年通信基站储能电池梯次利用技术标准与规范报告
- 会议管理服务合同样本
- 中医养生馆合作协议书范本
- 海底捞晋升面试题及答案
- 2025年理综试题及答案全国乙卷
- 2024年教育事业统计综合调查制度
- 2025年二次供水市场规模分析
- 穿越机的基础知识
- 《仓库出入库流程》课件
- 房屋市政工程生产安全重大事故隐患排查表(2024版)
- 高压电缆迁改工程施工方案
- 管理患者期望
评论
0/150
提交评论