已阅读5页,还剩68页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于社区的商品代理服务平台的系统设计摘 要本次毕业设计是设计并实现一个基于社区的商品代理服务平台,也可以把它看成一个购物网站,它有三种用户:社区用户(顾客)、物业(代理商或商店)、厂商(生产厂商或代理商)。厂商可以注册商品,查看任务列表;社区用户可以购物,查看定单信息,通过电子邮件向物业咨询和交流;物业可以查看用户订单,通过电子邮件和用户交流,向厂商订货。 在开发过程中,使用了JavaScript、Jsp、Struts、Hibernate等技术,数据库采用MySql数据库,网页开发工具使用Dreamweaver,WEB服务器采用Apache Tomcat 5.0,开发平台使用eclipse。论文中首先对整个商品代理服务平台进行了需求分析,然后着重讨论了厂商管理、商品注册、邮件管理三个子系统的数据库设计、详细设计和功能实现。关键词: JSP;Struts;Hibernate;MySQL;社区购物网站;AbstractThe graduation project is to design and implement a community-based merchandise agency services platform. It can also be treated as a shopping site, whose users include community of users (customers), realestate company (agents or stores), manufacturers (production manufacturers or dealers). The manufacturer can register a merchandise and look into task list. The community users can do shopping,can look into an order form information, also can pass an E-mail of consultation to the realestate company. The realestate company can browse order form of user,can deliver an E-mail of communion to the user,also can indent merchandise to the manufacturer.In the development process, JavaScript, Jsp, Struts, Hibernate, and other technology are used.MySql is used as database platform, Dreamweaver as web development tool, Apache Tomcat 5.0 as WEB server.The code is developed under eclipse.In the thesis, software demand for the community-based merchandise agency services platform was analysed at first. Then the paper payed more attention to database design, detail design and function implementation of three subsystem including management of manufacturers, merchandise registration and management of email.Keywords: JSP;Struts;Hibernate;MySQL;Community shopping website;目 录1 绪论12 毕业设计选用的技术和工具22.1 为什么使用Java语言22.1.1 Java语言的特点22.1.2 选用Java的原因22.2 开发环境及开发工具的介绍22.2.1 Eclipse概述22.2.2 Tomcat介绍22.2.3 MySQL介绍22.3 Servlet技术32.3.1 Servlet概述32.3.2 Servlet的优势32.4 JSP技术42.4.1 JSP的概述42.4.2 JSP的特点和优点42.5 Struts技术52.5.1 MVC设计模式52.5.2 Struts简介62.6 Hibernate技术82.6.1 Hibernate 的产生背景82.6.2 Hibernate简介82.6.3 Hibernate原理93 需求分析和概要设计103.1 系统用例说明103.2 系统设计中的层次划分113.2.1 视图层113.2.2 业务层143.2.3 持久化层153.3 系统设计中的模块设计173.3.1 商品注册设计173.3.2 厂商管理设计183.3.3 邮件管理设计183.4 静态模型194 数据库设计214.1 E-R图214.2 数据库表说明234.3 数据库表SQL语句245 详细设计和实现275.1 系统模块划分275.2 邮件管理模块275.2.1 发送邮件285.2.2 查看邮件列表295.2.3 删除邮件295.2.4 查看邮件内容305.2.5 回复邮件315.3 厂商及商品管理模块345.3.1 注册新商品345.3.2查看注册商品列表365.3.3 修改商品信息365.3.4 删除商品386 测试426.1 整合测试426.2 功能测试426.3 商品注册测试42结论44致谢45参考文献46附录一:系统部分代码47附录二:英文翻译54691 绪论中国互联网网络信息中心的数据显示,到2007年年底,中国网民人数已经达到2.1亿。中国2008年的网民人数继续增长,网民人数现在已经超越美国,成为全球网络用户最多的国家。随着网民的增加,网购用户也迅速增加。上网购物已成为主流消费人群的消费习惯之一。以2003年作为网络购物成长期的起点,中国大陆累计购物用户规模首次突破1000万,达到1520万人,经过前期的高速增长后,购物用户增长逐步放缓,累计到2006年12月底,中国网络购物市场总体用户数达到4310万人,较上年增长32.6%,预计到2010年用户规模将突破1亿。市场交易规模2007年我国网购总交易量达594亿元,和2006年312亿的总成交额相比,增长了90.4%。随着网上购物的发展,商品流通基础设施和配套行业的重点将会发生偏转。各类送货系统、快递运输公司、支付公司、安全、广告、商务软件、信息服务等新型物流和中介机构发展呈加速态势,并且有很大的发展空间。不难看出,由于电子商务的出现和发展,商品流通领域将面临全方位的深刻变革。 网上购物以其特有的优势,必将成为将来趋势。首先,它降低了商家成本,商家不用租昂贵的店面,不用招大量的营业员。其次,他大大扩大了商家的销售范围,有互联网的地方,都是销售范围。对顾客来说,不用出家门就可购物,更为其带来了更大的方便。网上购物以其低廉的价格,方便快捷的方式,短短几年已经风魔全球。因为它突破了时间和地域的限制,顾客可以24小时上网购物,你不尽可以购买本地的商品,还可以购买异地,甚至国外的商品。但如果你想开一家网上商店,必须具备相应的技术知识,以便管理商品。这对一般人来说,并不简单。网上购物的发展,同样带来一些信誉问题,如:产品质量,款到货不到的现象。而我们的基于社区的商品代理服务平台可以减少这个问题的发生,首先,在这个系统中,商店的管理者和商品的销售者是不同的,并且用户和物业是固定联系的,一个顾客对应一个物业。这一定程度上保证了商店的信誉,维护了顾客的利益。因此我们选择了这个课题基于社区的商品代理服务平台的系统设计。 2 毕业设计选用的技术和工具2.1 为什么使用Java语言2.1.1 Java语言的特点 1、纯面向对象 2、跨平台(“write once,run anywhere!”一次编译到处运行)。Java编译后生成的是.class文件,它是运行在Java虚拟机上的。 3、简单(Java语法去掉了指针,运算符重载,多重继承等;有垃圾回收器:程序员只负责对象的创建,垃圾回收器负责对象销毁和资源释放,一般只会在内存空间不够的情况下进行资源回收)。2.1.2 选用Java的原因 Java除了上述特点,另外它还提供了大量的开发工具包,加快了项目的开发进度,与Java相关的技术也都已很成熟,而且有大量的开源框架供开发者免费使用。另外,Java与互联网技术有很好的融合,J2EE(Java 2 Enterprise Edition)就是Java的一个重要发展方向,非常适合开发企业应用网站。这次毕业设计就是基于互联网的,是面向互联网用户的购物网站。所以选用了Java作为这次毕业设计的基础语言。我们选用的其它技术也都是与Java相关,或者是用Java编写的,包含在J2EE这个大范围内的各种技术。2.2 开发环境及开发工具的介绍2.2.1 Eclipse概述Ecpipse是java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。它是开源免费的,可以在网上下载。如果要用到Web开发,还要安装MyEclipse插件。Ecpipse本身也是用Java开发的,与Java有很好的融合性,本次项目使用的就是Java语言,再加上此平台是免费的,所以使用它作为开发平台。2.2.2 Tomcat介绍Tomcat是一个免费的开源的Serlvet/Web容器,它是Apache基金会的Jakarta 项目中的一个核心项目,由Apache、Sun和其它一些公司及个人共同开发而成。由于有了Sun的参与和支持,最新的Servlet和Jsp规范总能在 Tomcat中得到体现。因此,它现在使用比较广泛的一种Web服务器. 同样它也是免费,与Java有很好的融合性,这也是我们使用它的原因。2.2.3 MySQL介绍MySQL是最受欢迎的开源SQL数据库管理系统,它由MySQL AB开发、发布和支持。MySQL AB是一家基于MySQL开发人员的商业公司,它是一家使用了一种成功的商业模式来结合开源价值和方法论的第二代开源公司。MySQL是MySQL AB的注册商标。MySQL也是开源的,这意味着任何人都可以使用和修改该软件,任何人都可以从Internet上下载和使用MySQL而不需要支付任何费用。如果你愿意,你可以研究其源代码,并根据你的需要修改它。另外,它占用内存较小,如果是Oracle一般的电脑很难畅通的运行。MySQL非常适合单机开发。Eclipse+MySQL+Tomcat是当前J2EE开发的流行组合。2.3 Servlet技术2.3.1 Servlet概述Servlet技术是Sun公司提供的一种实现动态网页的解决方案,它是基于Java编程语言的WEB服务器端编程技术,主要用于在WEB服务器端动态生成对客户端的响应。Servlet技术也是JSP(JavaServer Pages)技术(另外一种动态网页开发技术)的基础。一个Servlet程序就是一个实现了特殊接口的Java类,用于被支持Servlet的WEB服务器调用和运行,即只能运行于具有Servlet引擎的WEB服务器端。一个Servlet程序负责处理 它所对应的一个或一组URL地址的访问请求,接收访问请求信息和产生响应内容。2.3.2 Servlet的优势Servlet是Java技术对CGI(Common Gateway Interface)编程的回答。Servlet程序在服务器端运行,动态地生成Web页面。与传统的CGI和许多其他类似CGI的技术相比,Java Servlet具有更高的效率,更容易使用,功能更强大,具有更好的可移植性,更节省投资: 高效: 在Servlet中,每个请求由一个轻量级的Java线程处理(而不是重量级的操作系统进程)。在 传统CGI中,如果有N个并发的对同一CGI程序的请求,则该CGI程序的代码在内存中重复装载了N次;而对于Servlet,处理请求的是N个线程,只 需要一份Servlet类代码。在性能优化方面,Servlet也比CGI有着更多的选择,比如缓冲以前的计算结果,保持数据库连接的活动,等等。 方便: Servlet提供了大量的实用工具例程,例如自动地解析和解码HTML表单数据、读取和设置HTTP头、处理Cookie、跟踪会话状态等。 功能强大: 在Servlet中,许多使用传统CGI程序很难完成的任务都可以轻松地完成。例如,Servlet能够直接和Web服务器交互,而普通的CGI程序不能。Servlet还能够在各个程序之间共享数据,使得数据库连接池之类的功能很容易实现。 可移植性好: Servlet 用Java编写,Servlet API具有完善的标准。因此,为I-Planet Enterprise Server写的Servlet无需任何实质上的改动即可移植到Apache、Microsoft IIS或者WebStar。几乎所有的主流服务器都直接或通过插件支持Servlet。 节省投资: 不仅有许多廉价甚至免费的Web服务器可供个人或小规模网站使用,而且对于现有的服务器,如果它不支持Servlet的话,要加上这部分功能也往往是免费的(或只需要极少的投资)。 2.4 JSP技术2.4.1 JSP的概述JavaServer Pages(JSP)是一种实现普通静态HTML和动态HTML混合编码的技术,许多由CGI程序生成的页面大部分仍旧是静态HTML,动态内容只在页面中有限的几个部分出现。但是包括Servlet在内的大多数CGI技术及其变种,总是通过程序生成整个页面。JSP使得我们可以分别创建这两个部分。从本质上说,JSP也是一种Servlet技术.Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户。插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。JSP与Java Servlet一样,是在服务器端执行的,通常返回该客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。2.4.2 JSP的特点和优点 为了快速方便地进行动态网站的开发,JSP在以下几个方面做了改进,使其成为 快速建立跨平台的动态网站的首选方案。1.将内容的生成和显示进行分离 用JSP 技术,Web页面开发人员可以使用HTML或者XML标识来设计和格式化最终页面,并使用JSP标识或者小脚本来生成页面上的动态内容(内容是根据请求变 化的,例如请求账户信息或者特定的一瓶酒的价格等)。生成内容的逻辑被封装在标识和JavaBeans组件中,并且捆绑在脚本中,所有的脚本在服务器端运行。由于核心逻辑被封装在标识和JavaBeans中,所以Web管理人员和页面设计者,能够编辑和使用JSP页面,而不影响内容的生成。 在服务器端,JSP引擎解释JSP标识和脚本,生成所请求的内容(例如,通过访问JavaBeans组件,使用JDBC技术访问数据库或者包含文件),并且将结果以HTML(或者XML)页面的形式发送回浏览器。这既有助于作者保护自己的代码,又能保证任何基于HTML的Web浏览器的完全可用性。 2.可重用组件 绝大多数JSP页面依赖于可重用的、跨平台的组件(JavaBeans或者Enterprise JavaBeans组件)来执行应用程序所要求的复杂的处理。开发人员能够共享和交换执行普通操作的组件,或者使得这些组件为更多的使用者和客户团体所使 用。基于组件的方法加速了总体开发过程,并且使得各种组织在他们现有的技能和优化结果的开发努力中得到平衡。 3.采用标识 Web页面开发人员不会都是熟悉脚本语言的编程人员。JSP技术封装了许多功能,这些功能 是在易用的、与JSP相关的XML标识中进行动态内容生成所需要的。标准的JSP标识能够访问和实例化JavaBeans组件,设置或者检索组件属性,下 载Applet,以及执行用其他方法更难于编码和耗时的功能。 4.适应平台 几乎所有平台都支持Java,JSPJavaBeans几乎可以在所有平台下通行无阻。从一个平台移植到另外一个平台,JSP和JavaBeans甚至不用重新编译,因为Java字节码都是标准的与平台无关的。 2.5 Struts技术2.5.1 MVC设计模式所谓“MVC模式”是三个单词的首字母缩写,它们是Model(模型)、View(视图)和Controller(控制)。分布式企业应用软件结构复杂、涉及多种技术,对设计开发人员提出了很高的要求。在此情况下,运用设计模式可复用的设计方案进行软件的设计开发十分必要。MVC模式已被证明是一种成功的软件设计模式,Struts就是基于MVC模式的一种框架。这个模式认为,程序不论简单或复杂,从结构上看,都可以分成三层。1)最上面的一层,是直接面向最终用户的“视图层”。它是提供给用户的操作界面,是程序的外壳。2)最底下的一层,是核心的“数据层”,也就是程序需要操作的数据或信息。3)中间的一层,就是“控制层”,它负责根据用户从“视图层”输入的指令,选取“数据层”中的数据,然后对其进行相应的操作,产生最终结果。这三层是紧密联系在一起的,又是互相独立的,每一层内部的变化不影响其他层,并且设计了接口,供其上面一层调用。这样一来,程序编写就可以实现模块化,修改外观或者变更数据都不用修改其他层,大大方便了维护和升级。这也是实现了程序对高内聚,低偶合的要求。MVC其结构如图1所示: 图1 MVC模式框架模型表示业务逻辑和业务规则等,在MVC的三个部件中拥有最多的处理任务。它可以用JavaBean和EJB(Enterprise JavaBean)等组件技术来处理数据库的访问。模型能为多个视图提供数据。由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。 视图是在屏幕上显示的。模型进行操作之后,其结果就是通过视图来显示的。在视图中其实没有真正的处理发生,只是作为一种输出数据并允许用户操作的方式。控制器用于管理用户与视图发生的交互。一旦用户想对模型进行处理时,它不能直接去执行模型,而是通过控制器来间接地实现。控制器能从视图中取值,然后将相应的值传给模型进行处理。控制器接受用户的输入并调用模型和视图去完成用户的需求。由上述可知,MVC模式的处理过程是:首先由控制器接收用户的请求,并决定应该调用哪个模型来进行处理,然后模型用业务逻辑来处理用户的请求并返回数据,最后控制器用相应的视图返回数据,并通过表达层呈现给用户。 2.5.2 Struts简介Struts是Apache组织的一个开放源码项目。Struts是一个比较好的MVC框架,提供了对开发MVC系统的底层支持,它采用的主要技术是Servlet,JSP和Custom tag library。其基本构成如图2所示。 图2 Struts框架图 由图2可以看出,在Struts框架中Controller功能由ActionServlet和ActionMapping对象构成,核心是一个 Servlet类型的对象ActionServlet,它用来接受客户端的请求。ActionServlet包括一组基于配置的 ActionMapping对象,每个ActionMapping对象实现了一个请求到一个具体的Model部分中Action处理器对象之间的映射。 Model部分由Action和ActionForm对象构成。所有的Action处理器对象都是开发者从Struts的 Action类派生的子类。Action处理器对象封装了具体的处理逻辑,调用业务逻辑模块,并且把响应提交到合适的View组件以产生响应。 Struts提供的ActionForm组件对象可以通过定义属性描述客户端表单数据。开发者可以从它派生子类对象,利用它和Struts提供的自定义标 记库结合可以实现对客户端的表单数据的良好封装和支持,Action处理器对象可以直接对它进行读写,而不再需要和request、response对象 进行数据交互。通过ActionForm组件对象实现了对View和Model之间交互的支持。View部分是通过JSP技术实现的。Struts提供了自定义的标记库,通过这些自定义标记可以非常好地和系统的Model部分交互,通过使用这些自定义标记创建的JSP表单,可以实现和Model部分中的ActionForm的映射,完成对用户数据的封装。 Struts的工作流程和MVC设计模式差不多,首先,视图层接受用户请求,可以把请求封装在Form表单里,通过查找Struts-cfg.xml配置文件(既控制器),转发到相应的Action里(既模型层),在Action里调用相应的业务方法,经过处理以后,返回响应结果。控制器获得响应结果,根据配置文件,返回到响应界面(视图层)给用户看。中间还可以加表单验证。这就是Struts工作的基本流程。2.6 Hibernate技术2.6.1 Hibernate 的产生背景大多数应用程序都需要处理数据。Java应用程序运行时,往往把数据封装为相互连接的对象网络,但是当程序结束时,这些对象就会消失在一团逻辑中,所以需要有一些保存它们的方法。有时候,甚至在编 写应用程序之前,数据就已经存在了,所以需要有读入它们和将其表示为对象的方法。手动编写代码来执行这些任务不仅单调乏味、易于出错,而且会占用整个应用 程序的很大一部分开发工作量。 优秀的面向对象开发人员厌倦了这种重复性的劳动,他们开始采用通常的“积极”偷懒做法,即,创建工具,使整个过程自动化。对于关系数据库来说,这种努力的最大成果就是对象/关系映射(ORM)工具。这类工具有很多,从昂贵的商业产品到内置于J2EE中的EJB标准。然而,在很多情况下,这些工具具有自身的复杂性,使得开发人员必须学习使用 它们的详细规则,并修改组成应用程序的类以满足映射系统的需要。由于这些工具为应付更加严格和复杂的企业需求而不断发展,于是在比较简单和常见的场景中, 使用它们所面临的复杂性反而盖过了所能获得的好处。这引起了一场革命,促进了轻量级解决方案的出现,而Hibernate就是这样的一个例子。2.6.2 Hibernate简介Hibernate 是一个开放源代码的对象关系映射框架,它对 JDBC 进行了轻量级的对象封装,使 Java 程序员可以随心所欲的使用对象编程思维来操纵数据库。它的工作原理是通过文件把值对象和数据库表之间建立起一个映射关系,这样,我们只需要通过操作这些值对象和Hibernate提供的一些基本类,就可以达到使用数据库的目的。例如,使用Hibernate的查询,可以直接返回包含某个值对象的列表(List),而不必向传统的JDBC访问方式一样把结果集的数据逐个装载到一个值对象中,为我们的编码工作节省了大量的劳动。Hibernate提供的HQL是一种类SQL语言,它和 EJBQL一样都是提供对象化的数据库查询方式,但HQL在功能和使用方式上都非常接近于标准的SQL。Hibernate不仅提供了从 Java 类到数据表之间的映射,也提供了数据查询和恢复机制。相对于使用 JDBC 和 SQL 来手工操作数据库,Hibernate 可以大大减少操作数据库的工作量。 另外 Hibernate 可以利用代理模式来简化载入类的过程,这将大大减少利用 Hibernate QL 从数据库提取数据的代码的编写量,从而节约开发时间和开发成本 Hibernate 可以和多种Web 服务器或者应用服务器良好集成,如今已经支持几乎所有的流行的数据库服务器。 2.6.3 Hibernate原理Hibernate 技术本质上是一个提供数据库服务的中间件。它的架构如图3所示:图3 Hibernate架构图图3显示了 Hibernate 的工作原理,它是利用数据库以及其他一些配置文件如 Hibernate .properties ,XML Mapping 等来为应用程序提供数据持久化服务的。 Hibernate 具有很大的灵活性,但同时它的体系结构比较复杂,提供了好几种不同的运行方式。在轻型体系中,应用程序提供 JDBC (Java Database Connectivity)连接,并且自行管理事务,这种方式使用了 Hibernate 的一个最小子集;在全面解决体系中,对于应用程序来说,所有底层的 JDBC API 都被抽象了,Hibernate 会帮你实现所有的细节。 3 需求分析和概要设计3.1 系统用例说明从下图可以看出,网站有未注册用户、物业代表、用户代表、厂商代表,还有管理员。对于未注册用户,他可以了解网站的公开信息,如:商品信息、商品价格信息、厂商信息等,但如果他想购物,就要登录或注册了。 图4 系统用例图当一个用户要注册一个购物者时,他要选泽一个物业,作为买商品的代理人。这是不同与一般购物商店的地方,这样设计的最根本的目的是保证购物者的利益。通过这种长期的代理人关系,可以保证购物双方的利益。一旦建立了这种关系,物业为保持一个长期的客户,必然努力保证自己的信誉,购物者也可以凭借自己的信誉获得购物的优惠。这也是本网站的建设的核心思想。厂商在网站上直接向消费者提供商品信息,以保证统一商品价格,维护厂商的利益,拉近了和顾客的距离。当顾客注册为一个普通用户后,他便可以购物了,同时可以向自己的物业发送邮件,咨询商品信息,对于顾客买不熟悉的商品有很大的帮助。当然了他还可以查看自己的定单,了解自己的购物情况。当顾客注册为一个物业后,他便可以进入邮件管理系统,查看用户留言,查看顾客定单,并生成任务向厂商订货。对于厂商来说,他可以注册商品,修改商品信息,并且可以查看物业定货。对于网站管理员来说,他可以管理各种用户信息,评定各用户的信用等级,对于一些不合格的厂商和物业有删除功能。网站的工作流程如图5所示:物业用户未登陆用户社区用户邮件列表商品列表定单列表注册、登陆注册、登陆注册、登陆查看查看查看生成采购任务生成确认供货任务生成确认注册商品厂商用户 图5 系统流程图3.2 系统设计中的层次划分本系统从层次上可以划分为三个层次:视图层,业务层和持久化层。3.2.1 视图层 所谓视图层,就是和用户交互的那部分,它直接和用户打交到,用户有他的使用习惯和风格,我们不能因为为了满足用户习惯,而去改变业务逻辑。这就要求我们在程序设计时,尽量把视图层和业务逻辑层分割开来,使得页面的改变,不影响业务逻辑。 因此,在视图层中,我们用了Struts框架。为什么要用他那?因为他很好的利用了MVC的设计模式(详见上面的技术介绍),很好的满足了我们的需求。我们利用JSP做为给用户的显示业面,当用户发送请求后,Struts会去读取配置文件,配置文件就是Struts的控制器,根据配置文件转发到相应的Action,通过Action调用相应的业务逻辑。当其中的一个层次改变时,其它的层次不用改变,大大提高了代码的可重用性和可维护性。这也是我们使用Struts框架的原因。下图为struts-config.xml控制器的部分代码: /商品信息的Form表单/邮件信息的form表单/全局转发/以下是action影射表:/Struts通过path找到相应的action,action里调用业务方法,parameter的值是/action里的方法名。/此action获得收件箱邮件的 /此action获得发件箱邮件的 /当执行完action后,会通过此路径转发到相应的页面或action /此action用于厂商注册商品并且Struts还给我们提供了Form表单和验证功能,当用户向服务器发送信息时。Form表单会自动把信息封装,并且可以根据需求验证。这样,如果用户输入的信息错误,控制器就能直接转回给用户,不用进入以后的模型层和业务逻辑,这就大大提高了效率。减少了程序异常的可能性。在模型层,他是直接和业务逻辑交互的,Struts通过Action调用业务逻辑方法,当业务逻辑改变时,他不会影响视图层和控制器层。大大降低了,程序间的偶合性。3.2.2 业务层业务层是程序的核心部分,一个好的业务分析抽象,即可减少代码量,也可提高效率。业务层是对业务分析得出的结果,他是实现系统功能的部分,同时又是和视图层、持久化层交互的部分。他根据业务需要,查询数据库,或者向数据库存入数据。同时又要对这些数据,进行操作,以向视图层发送,满足用户需要。在这个系统中,我们使用了工厂设计模式,既把业务封装成一个接口供视图层使用,也是为了减少层次之间的联系,提高代码的可重用性和可维护性。下图是工厂模式的部分代码:/从此工厂可以获得收件箱和发件箱package edu.ahut.cs.cmss.service;public class BoxFactory /创建收件箱private static final ReceiverBox RBOX = new ReceiverBox();/创建发件箱private static final SendBox SBOX = new SendBox();/通过此方法返回一个收件箱public static ReceiverBox getRBOX() return RBOX;/通过此方法返回一个发件箱public static SendBox getSBOX() return SBOX;3.2.3 持久化层 持久化层是和数据库直接打交到的,他对数据的持久化和页面的动态显示有重要意义。一提到数据库,我们就会想到SQL语句。对,SQL语句的编写过程,是容易出错,但又要大量重复劳动的工作。因此,我们在持久化层,使用Hibernate框架,它很好的封装了SQL语句,把它转化为了,具有面向对象特点的HQL语句。使我们不在操作那些无意义的字段,我们可以根据面向对象的特点,来操作数据库。使用Hibernate,你不需要实现任何不可思议的接口以便能够持续存在。惟一需要做的就是创建一份 XML“映射文档”,告诉Hibernate您希望能够保存在数据库中的类,以及它们如何关联到该数据库中的表和列,然后就可以要求它以对象的形式获取数据,或者把对象保存为数据。 运行时,Hibernate读取映射文档,然后动态构建Java类,以便管理数据库与Java之间的转换。在Hibernate中有一个简单而直观的API,用于对数据库所表示的对象执行查询。要修改这些对象,(一般情况下)只需在程序中与它们进行交互,然后告诉Hibernate保存修改即可。类似地,创建新对象也很简单;只需以常规方式创建它们,然后告诉Hibernate有关它们的信息,这样就能在数据库中保存它们。 下面是商品表的影射文件代码:/ Goods为类名,tb_goods是与Goods相对应的表名/主键/ class后对应的是主键产生方式,此句为自动生成/name 后为类的属性,column后为表中对应的字段,unique是判断表中的字段是否唯一另外,Hibernate还给我们提供了连接数据库的配置文件Hibernate.cfg.xml,下面是我在系统中使用的配置文件:truetrue/数据库对应的方言org.hibernate.dialect.MySQLDialect/连接数据库对应的驱动com.mysql.jdbc.Driver/连接数据库的url,后面是数据库名jdbc:mysql:/localhost:3306/cmss/登录名root/登录密码1234 !- create - /声明影射文件 3.3 系统设计中的模块设计3.3.1 商品注册设计厂商要注
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 贷款合同的主要条款与风险
- 2026年高端民宿运营公司服务质量检查管理制度
- 2025年运城学院辅导员考试真题
- 中西医结合护理在功能性便秘中的应用
- 2025年青海省地方金融监督管理局下属事业单位考试真题
- 北师大天路课件
- 双J管堵管应急处理与再通技巧
- 传染病及其预防说课稿
- 撑起法律保护伞
- 风电场电气系统调试方案
- 新版西师版三年级上册数学全册教案教学设计含教学反思
- 友邦新人培训课件
- 特殊工序标准化作业指导书(SOS)
- 【新教材】2025-2026学年教科版(2024)三年级体育全一册教案(教学设计)含教学计划及进度表
- 翡翠培训知识课件
- 人工智能+科学技术空天地海一体化感知能力提升研究报告
- 国开电大2025秋《形势与政策》大作业参考答案
- 2025年及未来5年中国橄榄油市场运行态势及行业发展前景预测报告
- 四季皮肤的特点及保养方案
- 经皮肾动脉造影课件
- 封条安全培训课件
评论
0/150
提交评论