基于JSF的失物招领登记系统设计—毕业论文设计.doc
毕业论文设计基于JSF的失物招领登记系统基于JSF的失物招领登记系统摘 要校内公告栏上时常会有各种寻物启示,但很少有人真正去问津,去了解和关心别人的心情,贴启示者更是在花费了印务费用之后,却达不到应有的效果。为解决此问题,我们计划开发失物招领登记系统,为信息时代的学生提供了更多的便利。通过该应用系统,注册者可以登记自己的失物信息,并按时间顺序在主页上显示,任何人都可以看到一个集中的校内失物寻物信息及其联系人和联系方式,为在校学生提供了更廉价便捷的失/拾物方式。以J2EE作为开发基础,使用了JSF等多种协议或技术,用MyEclipse作为开发工具,以Oracle公司的MySql作为数据库,开发实现了基于web技术的在线失物招领登记系统。系统实现了的以下主要功能模块,包括:管理员权限,管理和维护;用户注册、登录、注销,个人信息的查询、修改;物品管理,查看;广告添加,修改。经测试验证,该在线失物招领登记系统界面简单、操作方便,容易维护。关键词:失物招领; j2EE; JSF; MySqlThe Lost and Found Registration System Based on JSFAbstractThere are often few of lost objects on campus bulletin boards, but just a little of people actually interested in them, understand and care about others mood, paste the enlightenment is after spending printing costs, but fail to achieve the desired effect.In order to solve this problem, we plan to develop the lost property registration system, provide more convenience for the information age students. By the application, registration can register their lost information, and according to the time sequence on the home page display, anyone can see a centralized campus lost information and contacts, provide more cheap and convenient way in lost and found for students.Using J2EE as development basis, using JSF and other agreements and technology, using MyEclipse as a development tool, MySql as the database, developed to achieve online lost property registration system based on Web technology. The following main function modules, system include: administrator rights, management and maintenance; user registration, login, logout, query, modify personal information; lost and found information management, view; advertisement add, modify. The system has a simple interface, easy operation, and easy maintenance.Key words: Lost and Found; j2EE; JSF; MySql目录1 引言11.1 课题背景11.2 课题目的和意义11.3 课题研究方法11.4 论文结构12 系统应用的关键技术和工具22.1 J2EE介绍22.1.1 J2EE概述22.1.2 J2EE优势22.2 JSF技术介绍32.2.1 JSF的概述32.2.2 JSF配置42.2.3 JSF的优点42.3 Mysql 数据库42.3.1 数据库概述52.3.2 Mysql概述52.3.3 mysql的特点52.3.4 MySQL5.5安装过程62.4 Tomcat 服务器62.4.1 Tomcat 服务器简介62.4.2 Tomcat的特点62.4.3 Tomcat的优势72.4.4 Tomcat服务器的安装和配置72.5 MyEclipse 开发工具82.5.1 MyEclipse概述82.6 小结93系统需求分析和总体设计93.1系统功能需求93.2系统角色及其功能分析93.2.1系统支持的角色93.2.2系统角色的功能93.3 总体设计思想概述103.4数据库设计113.4.1数据库表设计113.5系统类的设计123.5.1 Entity层123.5.2 DAO层123.5.3 DTO层133.5.4 WEB应用层133.6小结144系统的详细设计144.1数据库与Entity层映射144.2主要模块的使用与界面154.2.1应用主界面154.2.2信息发布与管理界面164.2.3用户注册与登录界面174.2.4超级管理员广告管理界面194.2.5超级管理员物品信息管理界面214.2.6超级管理员用户管理界面224.3主要模块的设计思路及核心代码224.3.1 后台逻辑核心224.3.2 前台显示页面核心代码254.4系统的测试274.5小结275总结与展望285.1工作总结285.2展望28参考文献28致 谢30声 明311 引言1.1 课题背景随着当今世界进入信息时代,Internet的飞速发展和在全球的普及给人类生活带来革命性的改变,Internet将传统意义上的物理空间转变成电子空间,把人们带入了一个网络社会中,网络时代的到来,带给人们的不只是快捷、方便,它带来的是划时代的进步1。校内应用的兴起,为信息时代的学生提供了更多的便利,失物招领登记系统也正是基于这个想法。公告栏上时常会有各种寻物启示,但很少有人真正去问津,去了解和关心别人的心情,贴启示者更是在花费了印务费用之后,却达不到应有的效果。在此应用系统上,注册者可以登记自己的失/拾物品信息,并按登记时间顺序在主页上显示,任何人都可以看到一个集中的校内失/拾物品信息及其联系人和联系方式,为在校学生提供了更廉价便捷的失/拾物方式。1.2 课题目的和意义校内应用是开发以针对学校局域网络内的常见应用程序,通常包含:教务管理系统,OA办公系统,图书馆应用系统,学生管理系统等大型应用,也有如留言板,FTP校内下载,校内二手网,学院独立管理系统等中小型应用。作为校内应用的扩展,本系统目的和意义就是在校内失物招领这个常见的现实模块扩展为网络应用,为在校学生提供更廉价便捷的失/拾物方式,并实现统一管理。利用本系统,用户可以自由地浏览已经登记在数据库中的全部失/拾物信息,并可通过现在有学号登录,或重新注册成为用户,登记自己的失/拾物信息,实现低廉便捷操作。1.3 课题研究方法底层数据库层采用MySql,由eclipselink作为持久化管理,建立实体bean;整体运用MVC设计思路,各层之间独立,分为实体Entity层,实体操作DAO层,实体扩展及操作DTO层,javaBean后台APP层和最终WEB应用层;页面采用JSF Bean管理;前台后台通过登录用户权限控制进入。1.4 论文结构第一章,主要介绍了相关开发的背景、目的以及意义。第二章,主要介绍了开发本系统所用到的关键技术和开发工具,为接下来的设计奠定基础。第三章,主要介绍了对系统进行了需求分析和进行总体设计。需求分析阶段通过分析系统的角色的划分以及功能模块的划分,为系统的整体体设计提供了依据。整体设计阶段通过对数据库、DAO及DTO层和实体类的设计,并形成了完整的开发思路。第四章,主要介绍了主要模块的设计与实现以及使用,并给出相关关键源代码和最终的效果展示图。第五章,主要是对本次毕业设计的总结以及对后续工作的展望。2 系统应用的关键技术和工具2.1 J2EE介绍2.1.1 J2EE概述J2EE(Java 2 Platform Enterprise Edition)是java技术行业标准的应用技术开发企业级平台(Sun公司为了自身的利益,并没有将Java及其相关技术纳入标准化组织体系),它是Java技术不断更新和适应市场的产品,促进企业应用程序在Java平台上的发展。目前,java平台有三个版本:适合小型设备和智能卡的J2ME(Java 2 Platform Micro Edition),适用于桌面系统的J2SE(Java 2 Platform Standard Edition)、企业应用J2EE(Java 2 Platform Enterprise Edition)。Sun推出了J2EE为了克服传统的客户机/服务器(C/S)模式缺点,以浏览器/服务器(B/S)体系结构的发展趋势,提供了Java技术在服务器端应用程序在一个独立于平台的,便携式,多用户的开发应用,安全和基于标准的企业平台,从而简化了企业应用程序的开发,管理和部署。J2EE是一个标准,而不是一个产品,每个平台开发商按照J2EE标准开发J2EE应用服务器,J2EE应用服务器部署的J2EE企业应用平台,因为他们遵循J2EE规范。因此,企业应用开发采用J2EE技术可以部署在各种J2EE应用服务器的体系结构,以促进和规范企业应用的J2EE框架的使用,同时Sun给定了一个建议性的J2EE应用设计模式:J2EE蓝图,J2EE蓝图提供了系统的体系结构。J2EE企业应用设计模式的实现和相关代码,采用J2EE蓝图描述系统模型,可以简化这个复杂的工作,企业应用集成架构,J2EE蓝图是开发和优化的J2EE组件设计的基本原则。在发展的同时,给出的引导性策略也有助于职能分工,帮助应用开发和设计人员合理配置科技资源2。2.1.2 J2EE优势 J2EE的优势主要有以下几点:高效的开发:J2EE允许其它公司把通用的,繁琐的服务端事务,交由服务器中间件厂商去代替完成,使真正的开发人员可以专注于如何创建高效业务逻辑,缩短开发周期。先进的中间件厂商提供这些复杂的中间件服务:状态管理服务允许开发者写更少的代码,不在乎如何管理状态,因此可以更快的完成程序开发。持续性服务 :让开发人员不用编码代码就可以编写数据访问逻辑应用,可以产生更轻巧,应用程序完全与数据库无关,便应用程序更易于开发和维护,分布式共享数据对象缓存系统服务,让开发人员来制备高性能可扩展性大大提高的系统,总体部署伸缩性强。支持异构环境:J2EE可以开发和部署在异构环境中的可移植的程序,对J2EE应用程序不依赖于任何特定的操作系统,中间件,硬件的基础上,基于J2EE合理的应用程序,开发一次,可以部署到多个平台。在典型的企业异构环境的计算环境很重要,J2EE标准也允许排序与J2EE第三客户端的现成的组件兼容,在异构环境中部署他们,降低整个开发维护成本。可伸缩性:企业应用必须选择一个服务器平台,该平台可以满足商业运行在他们的系统上的大量新客户,并提供良好的可扩展性,由于J2EE平台的应用程序可以部署到各种实例的基础上,不区分操作系统。例如部署到高端UNIX主机系统,这个系统的一个单一的机器可支持64到256个处理器,(这是NT服务器所不能达到的)J2EE供应商提供广泛的负载平衡策略,可以消除系统中的瓶颈,允许多个服务器集成部署,多达数千个处理器的配置,实现系统具有高度的可扩展性,满足未来业务应用的需要。稳定的可用性:服务器平台必须能够在二十四小时运作来满足客户、合作伙伴的需求。由于互联网是全球的,无处不在的,即使在晚上的计划停机时间也可能造成严重的损失。如果意外关闭,它将有灾难性的后果。J2EE部署可靠的运行环境,他们支持的长期可用性。在Windows环境下的一些J2EE部署,客户可以选择的操作系统,如Sun Solaris更好的鲁棒性,IBM的OS390。最好的操作系统的鲁棒性,可以实现99.999%的可用性或每年只有5分钟的停机时间。这是一个强大的实时性能理想的业务系统2。2.2 JSF技术介绍2.2.1 JSF的概述JavaServer Faces (JSF) 是一种用于构建 Web 应用程序的新标准 Java 框架,它提供了一种以组件为中心来开发 Java Web 用户界面的方法,从而简化了开发,JavaServer Faces 还引起了广大 Java/Web 开发人员的兴趣。“企业开发人员”和 Web 设计人员将发现 JSF 开发可以简单到只需将用户界面 (UI) 组件拖放到页面上,而“系统开发人员”将发现丰富而强健的 JSF API 为他们提供了无与伦比的功能和编程灵活性,JSF 还通过将良好构建的模型-视图-控制器 (MVC) 设计模式集成到它的体系结构中,确保了应用程序具有更高的可维护性。最后,由于 JSF 是通过 Java Community Process (JCP) 开发的一种 Java 标准,因此开发工具供应商完全能够为 JavaServer Faces 提供易于使用的、高效的可视化开发环境3。Jsf请求步骤如图1所示。图1 JSF请求步骤2.2.2 JSF配置JSF是一个标准的网络应用框架,是以Servlet为调度核,因此,如果想正常运行JSF程序,必须把JSF作为servlet来运行。JSF是作为Servlet来运行,也有自己的配置文件,就是上面param所指定的faces-config.xml,这个文件中配置了JSF正确运行需要的一些信息,包括managed-bean(将JSF web页面中需要的bean以managed的方式配置起来,这样,就可以在web 页面中直接调用该bean 的属性和方法) ,navigation-rule(JSF页面之间的流转/调度配置)等。JSF程序在web页面中也表现为用户标签,也就是说,JSF也跟strtus一样,有自己的一套标签库,它通过解析这些标签来实现对JSF程序的控制。目前,JSF有2套标签:jsf_core.tld和html_basic.tld,从名字上可以看出来,第一个主要是核心JSF程序使用的标签,包括视图层(所有的JSF程序都必须有的标签包围) ,loadBundle(资源相关),validator(校验相关)等第二个是web页面设计相关的的一些html组件标签,这些组件,可以组成普通或者复杂的web应用程序。这里提一下,JSF最主要的特性之一,事件驱动,就是通过html组件来体现的,在定义了一个按钮(commandButton)以后,只要定义一下它的事件,就可以直接的将这个动作映射到后台的某个管理Bean的某个方法上,这样,大大减少了原来中间层的javascript调用,也就缩短了开发时间,并且,也减少了中间出错的几率。2.2.3 JSF的优点JSF具有以下优点: 基于MVC,可以有效的将数据显示与业务逻辑分开处理。有功能强大丰富的web开发组件,可以可视化的设计开发web应用程序。事件驱动,这是JSF比较重要的特点,这种机制大大减少了开发时间,提高了开发效率。2.3 Mysql 数据库2.3.1 数据库概述根据一些数据模型的数据库的组织并存放二级存储器的数据集,该数据集具有以下特点:尽可能不重复,提供各种各样的最佳的应用程序给某个特定的组织,其数据结构独立于使用它的应用程序,对数据的添加,删除,修改的统一管理和控制软件。数据搜索从历史的发展中看,数据库是数据管理的高级阶段,它是由文件管理系统的开发。在数据库中,一个项目的所有信息可以被称为一条记录(Record),每条记录由一系列字段(Field)组成,一系列的记录的集合形成数据表(Table),一个简单的“平面文件数据库”,它只包含一个数据表,而一个“关系数据库”,它包含两个或两个以上的数据表,其中一个或多个字段形式之间存在关系(有时被称为“链接”) 4。常用数据库:IBM 的DB2、Oracle、Informix、Sybase、SQL Server、PostgreSQL、mySQL。2.3.2 Mysql概述MySQL是一个关系数据库管理系统,由瑞典公司MySQL AB公司开发,现在属于Oracle公司。MySQL是一个关系数据库管理系统,关系数据库是在不同的表中保存数据,而不是所有的数据都在一个大仓库,增加存取速度,并提高灵活性。MySQL的SQL语言是最常见的用于访问数据库的标准语言。MySQL软件采用双授权政策,它分为社区版和商业版,因为它体积小,速度快,成本低,尤其是开放源代码的特点,一般中小型网站发展会选择MySQL作为数据库。由于其卓越的社区版本的性能,使用PHP和Apache可以形成一个良好的发展环境4。2.3.3 mysql的特点MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),MySQL数据库系统使用最常用的数据库管理语言-结构化查询语言(SQL)进行数据库管理3。因为MySQL是开源的,所以任何人都可以通用公共许可证允许下载并根据个人需要修改。MySQL由于其速度,可靠性和适应性的问题,大多数人认为不需要事务处理条件下,MySQL是内容管理的最佳选择,提供完全的多线程运行模式下的多线程系统利用为核心。提供了一种编程接口,C+,Java,Perl,Eiffel,PHP,Python和TCL程序语言(API),多个字段类型的支持,提供了一个完整的支持查询中SELECT和WHERE操作4。目前MySQL被广泛地应用在Internet上的中小型网站中,因为它体积小,速度快,成本低,尤其是开放源代码的特点。许多中小型网站为了降低网站总体运营维护成本而选择MySQL作为网站数据库3。2.3.4 MySQL5.5安装过程(本系统使用的MySql版本)运行mysql安装文件。按Next,然后选择安装方式,有“Typical(默认)”、“Complete(完全)”、“Custom(用户自定义)”,选择第二个选 项“Custom”,下一步,MySQL Server(mysql服务器),Developer Components(开发者部分),Debug Symbols(调试符号),Server data files(服务器数据文件)默认改变安装路径,原路径是“C:Program FilesMySQLMySQL Server 5.5”,也可以修改为:“E:Program FilesMySQL Server 5.5”。下一步,安装,会弹出窗口,点下一步,再点下一步,选择“Launch the MySql instance Configuration Wizard”,意思是启动MySQL实例配置向导,再点击Finish,再点下一步,Detailed Configuration(详细配置)和Standard Configuration(标准配置),选择详细配置,下一步。选择服务器类型,“Developer Machine(开发测试类,mysql占用很少资源)”、“Server Machine(服务器类型,mysql占用较多资源)”、“Dedicated MySQL Server Machine(专门的数据库服务器,mysql占用所有可用资源)”,根据自己的类型选择,测试软件选“Developer Machine”,服务器选“Server Machine” ,下一步。选择创建MySQL表时使用的表处理器,“Multifunctional Database”(通用多功能型,同时使用InnoDB和MyISAM储存引擎)、“Transactional Database Only”(服务器类型,专注于事务处理,主要使用InnoDB只偶尔使用MyISAM,一般)、“Non-Transactional DatabaseOnly”(非事务处理型,较简单,完全禁用InnoDB储存引擎,将所有服务器资源指派给MyISAM储存引擎),随自己的用途而选择。2.4 Tomcat 服务器2.4.1 Tomcat 服务器简介Tomcat是一个免费的开源serlvet容器,这是Apache基金会的Jakarta项目中的一个核心项目。项目在Apache基金会,Sun公司和其他一些公司和个人共同开发,由于Sun的参与和支持,最新的Servlet和JSP标准都可以反映在Tomcat中5。Tomcat中采用了Servlet容器:Catalina,完整的实现了Servlet2.3和Jsp1.2规范,Tomcat提供了不同平台的各种版本供下载,可以从其官方网站上下载其源代码版或者二进制版,由于Java的跨平台特性,基于Java的Tomcat也具有跨平台性5。2.4.2 Tomcat的特点在Tomcat中,应用程序的部署非常简单,你只需要把你的WAR包到Tomcat Webapp目录。Tomcat会自动检测该文件,解压,您访问此应用程序时,在有JSP的浏览器路径中,通常是非常缓慢的,因为Tomcat将JSP转为Servlet文件,然后编译,编译,之后将很快,Tomcat还提供一个应用程序:manager,访问此应用程序需要一个用户名和密码,用户名和密码存储在一个tomcat-users.xml文件,通过这个应用,基于FTP,您可以远程通过Web部署和撤回申请,当然,本地也可以5。2.4.3 Tomcat的优势Tomcat不仅是一个servlet容器,它具有传统的Web服务器的一般功能:处理HTML页面,但与Apache相比,其处理静态HTML页面不及Apache的能力。把Tomcat和Apache可以集成到一块的话,让Apache处理静态的HTML,而Tomcat 处理JSP和Servlet,这种整合只需要修改Apache和Tomcat配置文件就可达到效果5。2.4.4 Tomcat服务器的安装和配置2.4.4.1安装JDK 1.7 添加环境变量:在 我的电脑->属性->高级->环境变量 新建系统变量,变量名:JAVA_HOME 变量值:C:Program FilesJavajdk1.7.0 (JDK的安装目录) 在原有的系统变量 Path后面加上英文分号,再添加%JAVA_HOME%bin;%JAVA_HOME%libdt.jar;%JAVA_HOME%jrebin; 不要删除原来的。它们之间的分号,是英文的分号。重启电脑生效(因为添加的是系统变量,如果你的系统是win7,则不需要重启)。测试JDK是否安装成功,运行->cmd ->D: 进入D盘,输入javac 看能否出来很多命令,出来则说明JDK配置成功。2.4.4.2 Tomcat 7.0的安装配置 Tomcat 7.0 的免安装版的配置(假如将Tomcat 解压到C:Program Files目录,目录结构为:C:Program Filesapache-tomcat-7.0.11添加环境变量:在 我的电脑->属性->高级->环境变量 新建系统变量,变量名:CATALINA_HOME 变量值:C:Program Filesapache-tomcat-7.0.11 (Tomcat 解压到的目录)。 在系统变量Path的最后面添加%CATALINA_HOME%lib;% CATALINA_HOME%libservletapi.jar;%CATALINA_HOME%libjsp-api. jar注意它们之间的分号,一定是英文的分号。2.4.4.3 安装完成打开tomcat服务器,默认端口:8080,启动浏览器,在地址栏上输入:http:/localhost:8080/若出现图2所示界面说明安装成功。图2 tomcat启动页面2.5 MyEclipse 开发工具2.5.1 MyEclipse概述MyEclipse企业级工作平台(MyEclipse Enterprise Workbench ,简称MyEclipse)是对EclipseIDE的扩展,利用它我们可以在数据库和JavaEE的开发、发布以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML,Struts,JSP,CSS,Javascript,Spring,SQL, Hibernate6。MyEclipse 是一个十分优秀的用于开发Java, J2EE的 Eclipse 插件集合。MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支持十分不错,MyEclipse目前支持Java Servlet,AJAX, JSP, JSF, Struts,Spring, Hibernate,EJB3,JDBC数据库链接工具等多项功能。可以说MyEclipse几乎囊括了目前所有主流开源产品的专属eclipse开发工具6。开发界面如图3。图3 MyEclipse工程页面2.6 小结本章全面介绍了失物招领登记系统所用到的关键技术和开发工具,其中JSF作为整个WEB应用开发的基础,理解它的运行机制很重要,同时还得明白它的优劣势;j2ee作为开发的标准也作了简单介绍。最后介绍了本系统使用的数据库mysql以及tomcat服务器的安装与配置和工发工具MyEclipse。只有掌握了这些基础技术,本系统的开发才能正常进行。3系统需求分析和总体设计3.1系统功能需求图4 系统功能需求模块如图4所示,在本系统中主要阐述用户管理、物品信息管理、广告展示三个模块。用户管理:实现游客注册成为用户,并可自身修改用户显示名和密码,同时管理员可以对用户进行密码进行重置和显示名修改。物品管理:实现登录用户添加删除失/寻物品信息,并对自己添加物品进行状态更改,同时管理员也可以对所有物品信息进行查看或者删除。广告展示:实现管理员对页面头部广告显示的添加,修改,删除和选择相应广告激活。3.2系统角色及其功能分析3.2.1系统支持的角色站点注册用户超级管理员普通的网站浏览者(即游客)3.2.2系统角色的功能普通用户网站的普通浏览者只能浏览登录用户已登记的失/拾物品信息。注册用户网站的普通浏览者只要注册为失物招领登记系统用户后,获得自己的登录用户名,设置自己的登录密码就具有以下功能:登录,登出。并可登记和管理自己的失/拾物品信息。管理员拥有注册用户的所有功能,还可以对用户进行管理,包括重置用户密码、删除用户。页面头部广告显示的添加,修改,删除和选择相应广告激活。删除用户登记的失/拾物品信息。3.3 总体设计思想概述本系统是基于B/S架构下的MVC多层结构应用系统。B/S(Browser/Server)结构即浏览器和服务器结构。它是随着网络信息时代的发展,对C/S结构的一种变化或者改进的结构。在这种结构下,用户工作界面是通过浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,形成所谓三层3-tier结构。这样就可以大大简化客户端电脑载荷,减轻系统维护与升级的成本和工作量,降低了用户的总体开发,运营和维护成本(TCO)7。 在软件的体系架构设计中,MVC分层式结构是最常见,也是最重要的一种结构。推荐的分层式结构一般分为三层,从下至上分别为:持久化层、业务逻辑层、表现层,如下图5:图5 系统架构总体而言,采用MVC结构的设计思路,有一层中完成一组特定的功能实现,可以由多个相关的类或组件构成。层与层之间所存在的依赖关系是自上而下的,上层组件会对下层组件的API产生依赖关系,而下层组件却不会依赖于上层组件。例如:表现层会依赖于业务逻辑层的API,再向下业务逻辑层又会依赖于数据库层。并且每个依赖层都会对其上层公开API,但每一层具体的实现细节却会对外透明。当对其中某一层修改后,只要API不变,依然不会影响其他层。在本系统的开发过程中,使用了开源的mysql数据库,由eclipselink作为持久化管理,表现层运用基于JSF 托管Bean实现。3.4数据库设计3.4.1数据库表设计下面列出了设计过程中所用到的数据库表及其字段结构: Lost_Thing表用来保存用户登记的失/拾物信息,如表1:表1 Lost_Thingl_thing列名类型长度描述lost_idint失/拾物品IDlost_namevarchar50失/拾物品名称lost_descvarchar1000失/拾物品描述lost_pickervarchar30拾物用户名(弃用)lost_picker_authvarchar20拾物用户权限(弃用)lost_ownervarchar30失物用户名(弃用)lost_owner_authvarchar20失物用户权限(弃用)lost_publish_uservarchar30信息发布者用户名lost_publish_timedatetime信息发布时间lost_imgurlvarchar200物品图片链接地址lost_statusvarchar10失/拾物品状态lost_typevarchar50物品类型(弃用)lost_orvarchar10Pick Or Lostlost_starttimedatetime开始时间(弃用)lost_endtimedatetime结束时间(弃用)lost_connvarchar50联系方式lost_connNamevarchar50联系人 Lost_User表用来保存用户信息,如表2:表2 Lost_Userl_user列名类型长度描述user_idint用户IDuser_namevarchar30用户登录名user_realnamevarchar50用户显示名user_passwordvarchar50用户密码user_authvarchar20用户权限user_regtimedatetime用户注册时间user_logintimedatetime用户最后登录时间 Lost_Show表用来保存广告信息,如表3:表3 Lost_Showl_show列名类型长度描述show_idint广告IDshow_namevarchar50广告名show_descvarchar1000广告描述show_changetimedatetime广告修改时间show_pulishtimedatetime广告发布时间show_change_uservarchar30发布广告用户show_urlvarchar200广告图片链接地址show_statusvarchar50广告当前状态3.5系统类的设计3.5.1 Entity层Entity层,也叫实体层,作为和数据库关联最紧密的一层,其直接作用就是映射数据库字段,将数据库字段反映到普通java类属性上,并添加注解。结构如图6所示。图6 Entity设计3.5.2 DAO层DAO层,也叫数据库操作层,通过已经写好的JpaFacade通用接口连接到数据库映射java类。DAO层一般有接口和该接口的实现类,接口用于规范实现类,实现类一般用于操作数据库,包括修改,添加,删除,查询数据库等基础操作,就写了一个公共类DAO类 ,当需要修改,添加,删除,查询数据库操作时,直接调用公共类DAO类,向上对DTO层提供访问接口。结构如图7所示。图7 LostFacadeDAO设计3.5.3 DTO层DTO层,也叫数据传输对象层,主要用来再次封装对数据库的访问,就是对Entity的扩展和对操作DAO暴露出来的接口,以便让最终的WEB层可以在DTO层的帮助下更加轻松的操作数据库中的数据。结构如图8所示。图8 LostDTOFacadeBean设计3.5.4 WEB应用层WEB应用层是整个业务逻辑的体现,所有业务相关的逻辑都写在WEB层的JavaBean内,通过调用底层包装过的方法,将结果处理之后返回到页面上作显示,并与用户交互。结构如图9所示。图9 Web应用层设计3.6小结本章内容在开头分析了系统的功能需求,通过对系统角色的划分以及功能模块的划分,明确了系统将要实现的需求,总体设计也有了依据。在接下来的小节里阐述了系统的总体设计思路,本系统是基于B(浏览器)/S(服务器)架构下的MVC应用系统。最后通过对数据库、Dao,Dto和实体类的设计分析,形成了完整的开发思路,为接下来编程实现各个具体功能模块铺平了道路。4系统的详细设计4.1数据库与Entity层映射EclipseLink除了支持传统的ORM和OXM之外,另外提供了对SOA的支持,比如能够将Domain Model部署成Web Service,比如利用ORM和SDO将实体部署为SDO,甚至利用DAS来查询和修改这些实体。EclipseLink持久化配置文件为persistence.xml。本系统连接到数据库MySql,创建数据库名称为“lost”,使用默认端口3306,下图说明了如何配置以连接到MySql数据库,如图10。图10 持久化框架配置文件每一次数据访问请求都必须经历建立数据库连接、打开数据库、存取数据和关闭数据库连接等步骤,而连接并打开数据库是一件既消耗资源又费时的工作,如果频繁发生