搜档网
当前位置:搜档网 › 网上订餐系统毕业论文

网上订餐系统毕业论文

摘要

二十一世纪是一个集数字化,网络化,信息化的,以网络为核心的社会。中国的网民充分领略到“畅游天地间,网络无极限”所带来的畅快。随着Internet 的飞速发展,使得网络的应用日益的广泛。越来越多的人接受了电子商务这种便捷、快速的交易形式,特别是在大学校园,网上购物的趋势日益增加,淘宝、京东等知名的网上购物平台也越来越多。所以,网上订餐的推出也会很快受到了大家的欢迎。

本次毕业设计的课题——网上订餐系统的设计与实现,系统地阐述了整个网络订餐系统的功能及实现。实现了从菜品管理,菜品分类和查询,到订餐车实现,用户订单处理,再到系统管理。基本上实现了网上购物的功能流程,能够实现用户与商家在网上进行订餐交易。本系统界面简单直观,易于操作和使用,交互性强,完全基于Internet网络。

该系统采用Java语言编写,应用Struts2,Hibernate,Spring当前主流的Web框架,采取MVC设计模式,即模型(Model)-视图(View)-控制器(Controller),是用户体验和用户交互有了更好的提升。

关键字:信息化,网上订餐,Java,MVC

Abstract

The 21st century is a set of digital, networked, information-based, network-centric society. Chinese Internet users to fully appreciate the "swim between heaven and earth, the network without limits" brought fun. With the rapid development of Internet, making the increasingly widespread application of the network. More and more people accept this convenient e-commerce, fast form of trading, especially on college campuses, the growing trend of online shopping, Taobao, Jingdong other well-known online shopping platform is also increasing. Therefore, the introduction of online ordering will soon be everyone's welcome.

The graduation project topic - Design and implementation of online ordering system, systematically expounded the function of the entire network reservation system and its implementation. Management realized from the dishes, dishes classification and queries, ordering the car to achieve user order processing, to systems management. Basically realized the function of online shopping process enables users and businesses online ordering transactions. The system is simple and intuitive interface, easy to operate and use, interactive, based entirely on the Internet.

The system uses the Java language, application Struts2, Hibernate, Spring current mainstream Web framework to take MVC design pattern, which model (Model) - View (View) - Controller (Controller), user experience and user interaction with the more good improvement.

The keyword:Information technology, Online reservation,Java,MVC

目录

1 绪论 (1)

1.1 背景意义 (1)

1.2 国内外状况 (1)

1.3 现实意义 (2)

1.4 论文结构 (3)

2 基础理论 (4)

2.1 B/S结构 (4)

2.2 JSP技术介绍 (5)

2.3 MVC框架 (7)

2.4 String+Spring+Hibernet框架 (8)

2.5 MySQL数据库 (11)

2.6 Tomcat的介绍 (12)

2.7软件平台和开发工具 (13)

3 系统设计 (14)

3.1 需求分析 (14)

3.2 系统使用对象介绍 (14)

3.3 系统功能图 (16)

4 数据库设计概要 (21)

4.1 数据库需求分析 (21)

4.2 数据库的逻辑设计 (21)

4.3 数据库表设计 (25)

5 网上订餐系统的实现 (27)

5.1 环境的搭建 (27)

5.2 用户模块功能 (29)

5.3 管理员模块功能 (38)

5.4 代码片段介绍 (42)

6 系统测试 (46)

6.1 测试的目标 (46)

6.2 测试的步骤 (46)

6.3 测试的内容 (46)

6.4 测试结果分析 (47)

7 项目总结和心得体会 (48)

7.1 项目总结 (48)

7.2 心得体会 (48)

致谢 (50)

参考文献 (51)

1 绪论

1.1背景和意义

众所周知,随着社会的发展,科技的发达,人民生活水平的提高,互联网的应用已普及千家万户,有时大家的忙碌会不想浪费太多的时间出去买饭,吃饭等,这就为网络订餐提供了良好的发展空间。因此我决定以网上订餐系统作为我毕业论文的的研究课题,我相信它的实用性以及未来的发展前景。

而餐饮业在网络领域中还处于形成的初期;传统的饮食业中,大都是以实际门面的形式来进行宣传与交流的。作为网络普遍化的社会,这还缺少了一些更为现代化的元素。餐饮业是一种个性化、多样化的服务产业,而网络商务领域则是最能体现个性化,多样化服务的商务方式。而且现在大部分网络商务都体现为像大企业服务,结合餐饮这个特殊的行业,终将还发展为向小区域小店铺服务的模式。以最贴切的方式,最灵便的服务进入各个网络社区,进入人们的生活。

网络订餐随着互联网的成长会逐渐被人们所喜爱,正如几年前手机移动的短信一样,为企业带来的几百个亿的业务收入。在互联网世界里面,谁早一步在应用上创新,谁就掌握了未来的方向,谁便能把握机遇,成为时代的先驱,成功的缔造者。我觉得网上订餐服务的直观、有效、便捷等优点是传统的电话订餐业务无法比拟的。社会是进步的,我坚信网络订餐终将取代以往的电话订餐。同时,我也坚信网络订餐将会带给广大繁忙的工作人群诸多的方便,节约他们大量的时间。

1.2国内外现状

就餐饮业而言,在经济发达国家中发展的速度及需求远比经济不发达的国家要高很多。因为经济发达国家人们的时间观念很强,对服务的要求也比较高,更重要的是其餐饮业能不断运用先进的管理方法和手段特别是信息技术,充分地利用巨大的信息资源。在世界上经济发达的国家和地区,计算机技术应用于餐饮业已经十分成熟,如IBM公司的POS产品已获得较大范围的应用。2004年在美国100家最有效利用信息技术企业中,美国最大的食品和多种服务公司ARAGroup Ine,名列第四。目前它利用主要的信息系统使其部门经理有更多的时间面向顾客。

网上订餐中多功能性的服务还可以让消费者从容的网上浏览餐馆的菜单,或进行价格上的比价,来选择所需要的美食佳肴。目前,通过上网提供外卖和送餐服务的餐厅多于独立经营者,外卖与送餐服务占餐饮生意额的一半以上。美国餐饮消费者越来越趋向于使用网上订餐的形式来购买外卖,特别是年轻一族的消费者。显而易见,网上订餐将成为餐饮业扩大生意的金矿源,有眼光的餐饮业业主应该尽早考虑如何利用英特网上网销售。

目前网上订餐业务在我国只是处于形成期,从网站数量来看,并不很多,专门从事网上订餐业务的网站凤毛麟角,较大的有易合饭(https://www.sodocs.net/doc/251422322.html,/)订餐网、中国快餐网(https://www.sodocs.net/doc/251422322.html,/)等。一些较大的星级酒店虽然设立网站开展网上订餐业务,但以网上订房业务为主。至于一些中小餐饮企业则未涉足网上业务,而且有些餐馆虽然上了网,但网上订餐业务也从未开展。另外,从网上订餐企业的业绩看,并不理想。在我的印象中好像也没有几家运用网上订餐而业务火爆的企业。据了解,目前北京市最早开展网上订餐服务的一家快餐店的送餐范围已经扩到了5环以内,而且1份起送,就是这样目前公司的经营状况也不太理想。

由于互联网发展已深入家庭,网上订餐这个课题已经提出,为了方便人们生活,提高人们的生活效率,该类统根据现实订餐的方式虚拟于网络之上,使人们通过网络就可以完成生活中必要的事情(饮食)。系统的完成不仅可以基本实现客户订餐的功能,还能在此基础上提供更多的,更贴心的服务。信息技术的发展将更快的推动互联网的发展,订餐系统的重要性也将越显其强大的作用。

1.3 现实意义

随着市场经济的发展和高科技的应用,人们工作压力与日俱增,生活节奏不断加快,更注重对时间的把握。发愁选餐厅,讨厌排长队,传统餐饮方式已跟不上时代步伐,因此快捷的订餐、送餐服务应运而生。这种方式让人们有更多选择,更加节省时间,更加方便。对于学生更是如此,学校僧多粥少的现象已让学生叫苦不迭。每当下课铃响起,浩瀚大军涌入餐厅顿时让人毫无食欲。另一方面,食堂工作人员无法准确获得用餐学生数量和喜欢的菜别,改造成供与求不对等。一则来餐厅消费的学生会减少,二来会造成食材的浪费。所以网上订餐系统很好地解决了上述问题,让就餐更快捷方便。

1.4论文结构

论文主要从网上订餐系统的背景意义、现状、以及需求分析、设计和实现等方面论述了本系统的开发过程,从中的学习收获,技术的应用,主要结构如下:第一章绪论,包含了网上订餐系统的背景意义,国内外现状,现实意义。

第二章基础理论,阐述该系统所用到的基础理论知识。

第三章系统设计,主要论述了网上订餐系统的需求分析,系统使用者角色分析,系统整体功能分析。

第四章数据库设计概要,包括数据库需求分析,逻辑设计,以及数据表的设计。

第五章系统的实现,介绍系统各个模块的实现,从用户模块和管理员模块着手介绍,以及一些核心代码的展示。

第六章系统测试。

第七章项目总结与心得体会。

2基础理论

2.1 B/S结构

B/S结构(Browser/Server,浏览器/服务器模式),是WEB兴起后的一种网络结构模式,WEB浏览器是客户端最主要的应用软件。这种模式统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。

B/S最大的优点就是可以在任何地方进行操作而不用安装任何专门的软件,只要有一台能上网的电脑就能使用,客户端零安装、零维护。系统的扩展非常容易。B/S结构的使用越来越多,特别是由需求推动了AJAX技术的发展,它的程序也能在客户端电脑上进行部分处理,从而大大的减轻了服务器的负担;并增加了交互性,能进行局部实时刷新。

架构特点:

(1)维护和升级方式简单。当前,软件系统的改进和升级越发频繁,B/S 架构的产品明显体现着更为方便的特性。对一个稍微大一点单位来说,系统管理人员如果需要在几百甚至上千部电脑之间来回奔跑,效率和工作量是可想而知的,但B/S架构的软件只需要管理服务器就行了,所有的客户端只是浏览器,根本不需要做任何的维护。无论用户的规模有多大,有多少分支机构都不会增加任何维护升级的工作量,所有的操作只需要针对服务器进行;如果是异地,只需要把服务器连接专网即可,实现远程维护、升级和共享。所以客户机越来越“瘦”,而服务器越来越“胖”是将来信息化发展的主流方向。今后,软件升级和维护会越来越容易,而使用起来会越来越简单,这对用户人力、物力、时间、费用的节省是显而易见的,惊人的。因此,维护和升级革命的方式是“瘦”客户机,“胖”服务器。

(2)成本降低,选择更多。大家都知道windows在桌面电脑上几乎一统天下,浏览器成为了标准配置,但在服务器操作系统上windows并不是处于绝对的统治地位。当前的趋势是凡使用B/S架构的应用管理软件,只需安装在Linux 服务器上即可,而且安全性高。所以服务器操作系统的选择是很多的,不管选用哪种操作系统都可以让大部分人使用windows作为桌面电脑操作系统不受影响,这就使得最流行免费的Linux操作系统快速发展起来,Linux除了操作系统是免费的以外,连数据库也是免费的,这种选择非常盛行。

(3)应用服务器运行数据负荷较重。由于B/S架构管理软件只安装在服务器端(Server)上,网络管理人员只需要管理服务器就行了,用户界面主要事务逻辑在服务器(Server)端完全通过WWW浏览器实现,极少部分事务逻辑在前端(Browser)实现,所有的客户端只有浏览器,网络管理人员只需要做硬件维护。但是,应用服务器运行数据负荷较重,一旦发生服务器“崩溃”等问题,后果不堪设想。因此,许多单位都备有数据库存储服务器,以防万一。

2.2 JSP技术简介

JSP(全称JavaServer Pages)是由Sun Microsystems公司倡导和许多公司参与共同创建的一种使软件开发者可以响应客户端请求,而动态生成HTML、XML 或其他格式文档的Web网页的技术标准。JSP技术是以Java语言作为脚本语言的,JSP网页为整个服务器端的Java库单元提供了一个接口来服务于HTTP的应用程序。在传统的网页HTML文件(*.htm,*.html)中加入脚本片段和JSP标记(Tag),构成JSP网页(*.jsp)。JSP技术为创建显示动态生成内容的web页面提供了简便的方法。JSP作为Java家族的一员,承袭了Java的特点,即跨平台的特性,也即一次编译,到处运行。

JSP使Java代码和特定的预定义动作可以嵌入到静态页面中。JSP句法增加了被称为JSP动作的XML标签,它们用来调用内建功能。另外,可以创建JSP 标签库,然后像使用标准HTML或XML标签一样使用它们。标签库提供了一种和平台无关的扩展服务器性能的方法。

在国外,己经大量使用JSP作为网络应用程序的开发工具,而在国内,尽管JSP 还不是主流开发技术,但是由于JSP的强大优势,许多网站都已经准备转向JSP,利用JSP来开发动态网站。

2.2.1 JSP体系结构

JSP网站开发标准给出了两种使用JSP的技术,可以归纳为模式一、模式二。

模式一:JSP+JavaBeans技术在这种模式中,JSP页面独自响应请求并将处理结果返回给客户。Bean处理所有数据访问,JSP实现页面的表现,以实现内容生成与显示相分离。当处理复杂的大型应用时,页面被嵌入大量的脚本或Java 代码段,当需要处理的商业逻辑复杂时,这种情况会变得非常糟糕,大量的内嵌代码使得页面程序变得复杂,对于前端界面设计人员,这是不可思议的事情。所

以模式一可用于小型应用,不能够满足大型应用的需要。

模式二:JSP+Servlet+JavaBeans技术Servlet技术是一种采用Java技术来实现CGI功能的一种技术,Servlet技术非常适于服务器端的处理和编程,并且Servlet会长期驻留在内存。

从开发的观点看,模式二具有更清晰的页面表现,清楚的开发者角色划分,在大规模项目开发中,模式二更被采用,模式二也更符合当前流行的MVC结构(Model/view/controller),其中Servlet对应controller,处于控制者的位置,处理HTTP请求,负责生成JSP中使用的Beans组件或对象,并判断应将请求传递给哪个JSP等,JSP对应view,负责生成最终的动态网页并返回给浏览器。而JavaBeans对应的是Model,实现各个具体的应用逻辑与功能。

2.2.2 JSP的特点

1 简化的页面生成技术。JSP页面用标准的HTML或XML命令来处理页面的格式化和布局设计,而用类似HTML、XML的标记和Java语言编写的脚本程序生成页面内容。这使得页面形式与页面内容互相独立,非常有利于大型项目的分工合作。

2 与Java平台有机集成。JSP技术是Java 2平台的重要组成部分,JSP使用Java语言作为它的脚本语言。在JSP页面中可以使用几乎所有的Java组件和Java API,这就能充分发挥出Java语言的强大功能。使用JSP技术可以创建具有高度可伸缩性和可靠性的Web应用程序。

3 硬件平台和服务器无关性。JSP作为Java家族的一员,秉承了Java技术的“一次编写,随处可用(Write Once,Rum Anywhere)”的特性,可以运行于大多数流行的操作系统平台及Web服务器,这种与服务器硬件和操作系统平台的无关性是JSP相对于其它动态网页技术最大的一个优点。

4功能可扩展性。如同的JSP技术可以通过ActiveX/COM组件来扩展功能一样,JSP可以通过JavaBean和EJB(Enterprise JavaBean)以及自定义的标记来扩展功能。

JSP可以通过JDBC,与诸如Oracle、MYSQL这样的大型关系数据库进行连接。JSP提供了一些隐含对象。这些隐含对象在JSP页面中可以直接引用,而不必首先声明。利用JSP提供的这些隐含对象,可以使脚本功能更加强大,并且编程更加容易、方便。例如,利用request对象,可以很容易地接收用户在HTML表单

中提交的信息

2.3 MVC框架

MVC全名是Model View Controller,是模型(Model)-视图(View)-控制器(Controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。

MVC模式最早由Trygve Reenskaug在1978年提出,是施乐帕罗奥多研究中心(Xerox PARC)在20世纪80年代为程序语言Smalltalk发明的一种软件设计模式。MVC模式的目的是实现一种动态的程序设计,使后续对程序的修改和扩展简化,并且使程序某一部分的重复利用成为可能。除此之外,此模式通过对复杂度的简化,使程序结构更加直观。软件系统通过对自身基本部分分离的同时也赋予了各个基本部分应有的功能。

模型(Model)用于封装与应用程序的业务逻辑相关的数据以及对数据的处理方法。“模型”有对数据直接访问的权力,例如对数据库的访问。“模型”不依赖“视图”和“控制器”,也就是说,模型不关心它会被如何显示或是如何被操作。但是模型中数据的变化一般会通过一种刷新机制被公布。为了实现这种机制,那些用于监视此模型的视图必须事先在此模型上注册,从而,视图可以了解在数据模型上发生的改变。

视图(View)能够实现数据有目的的显示(理论上,这不是必需的)。在视图中一般没有程序上的逻辑。为了实现视图上的刷新功能,视图需要访问它监视的数据模型(Model),因此应该事先在被它监视的数据那里注册。

控制器(Controller)起到不同层面间的组织作用,用于控制应用程序的流程。它处理事件并作出响应。“事件”包括用户的行为和数据模型上的改变。控制器接受用户的输入并调用模型和视图去完成用户的需求,所以当单击Web页面中的超链接和发送HTML表单时,控制器本身不输出任何东西和做任何处理。它只是接收请求并决定调用哪个模型构件去处理请求,然后再确定用哪个视图来显示返回的数据。

MVC优势:在最初的JSP网页中,像数据库查询语句(SQL query)这样的数据层代码和像HTML这样的表示层代码是混在一起。虽然有着经验比较丰富的开发

者会将数据从表示层分离开来,但这样的良好设计通常并不是很容易做到的,实现它需要精心地计划和不断的尝试。MVC可以从根本上强制性地将它们分开。尽管构造MVC应用程序需要一些额外的工作,但是它带给我们的好处是毋庸置疑的。

首先,多个视图能共享一个模型。如今,同一个Web应用程序会提供多种用户界面,例如用户希望既能够通过浏览器来收发电子邮件,还希望通过手机来访问电子邮箱,这就要求Web网站同时能提供Internet界面和WAP界面。在MVC 设计模式中,模型响应用户请求并返回响应数据,视图负责格式化数据并把它们呈现给用户,业务逻辑和表示层分离,同一个模型可以被不同的视图重用,所以大大提高了代码的可重用性。

其次,控制器是自包含(self-contained)指高独立内聚的对象,与模型和视图保持相对独立,所以可以方便的改变应用程序的数据层和业务规则。例如,把数据库从MySQL移植到Oracle,或者把RDBMS数据源改变成LDAP数据源,只需改变模型即可。一旦正确地实现了控制器,不管数据来自数据库还是LDAP服务器,视图都会正确地显示它们。由于MVC模式的三个模块相互独立,改变其中一个不会影响其他两个,所以依据这种设计思想能构造良好的少互扰性的构件。

此外,控制器提高了应用程序的灵活性和可配置性。控制器可以用来连接不同的模型和视图去完成用户的需求,也可以构造应用程序提供强有力的手段。给定一些可重用的模型和视图,控制器可以根据用户的需求选择适当的模型进行处理,然后选择适当的的视图将处理结果显示给用户。

2.4 Struts2+Spring+Hibernate框架

struts+spring+hibernate框架,简称SSH框架,是目前较流行的一种Web 应用程序开源框架。集成SSH框架的系统从职责上分为四层:表示层、业务逻辑层、数据持久层和域模块层,以帮助开发人员在短期内搭建结构清晰、可复用性好、维护方便的Web应用程序。其中使用Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,控制业务跳转,利用Hibernate框架对持久层提供支持,Spring做管理,管理struts和hibernate。具体做法是:用面向对象的分析方法根据需求提出一些模型,将这些模型实现为基本的Java 对象,然后编写基本的DAO(Data Access Objects)接口,并给出Hibernate的DAO实现,采用Hibernate架构实现的DAO类来实现Java类与数据库之间的转

换和访问,最后由Spring做管理,管理Struts和Hibernate。

系统的基本业务流程是:在表示层中,首先通过JSP页面实现交互界面,负责接收请求(Request)和传送响应(Response),然后Struts根据配置文件(struts-config.xml)将ActionServlet接收到的Request委派给相应的Action 处理。在业务层中,管理服务组件的Spring IoC容器负责向Action提供业务模型(Model)组件和该组件的协作对象数据处理(DAO)组件完成业务逻辑,并提供事务处理、缓冲池等容器组件以提升系统性能和保证数据的完整性。而在持久层中,则依赖于Hibernate的对象化映射和数据库交互,处理DAO组件请求的数据,并返回处理结果。

采用上述开发模型,不仅实现了视图、控制器与模型的彻底分离,而且还实现了业务逻辑层与持久层的分离。这样无论前端如何变化,模型层只需很少的改动,并且数据库的变化也不会对前端有所影响,大大提高了系统的可复用性。而且由于不同层之间耦合度小,有利于团队成员并行工作,大大提高了开发效率。

2.4.1 Struts2

Struts2一个web应用框架,它不是一个Struts的新发布的版本,而是一个全新的框架。Struts2是第二代基于Model-View-Controller(MVC)的web应用框架。Struts2是java企业级的web应用的可扩展性本框架。它是web和Struts 社区合并后的产物,Struts2没有继承Struts1的血统,而是继承了webwork的血统。Struts 2以webwork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与ServletAPI完全脱离开,所以Struts 2可以理解为webwork的更新产品。

Struts 2请求流程:

1.客户端发送请求 (客户端初始化一个指向Servlet容器(如Tomcat)的请求);

2.这个请求会经过图中的几个过滤器,最后会到达FilterDispatcher过滤器;

3.FilterDispatcher通过ActionMapper来决定这个Request需要调用哪个Action;

4.如果ActionMapper决定调用某个Action,FilterDispatcher把请求的处理交给ActionProxy;

5.ActionProxy通过ConfigurationManager询问Struts配置文件(Struts.xml),找到需要调用的Action类;

6.ActionProxy创建一个ActionInvocation的实例;

7.ActionInvocation调用真正的Action,当然这涉及到相关拦截器的调用(interceptor);

8.Action执行完毕,ActionInvocation创建Result并返回,返回结果前要做些动作也是可以的。

2.4.2 Spring

Spring是一个开源框架,它由Rod Johnson创建。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。

轻量----从大小与开销两方面而言Spring都是轻量的。完整的Spring框架可以在一个大小只有1MB多的JAR文件里发布。并且Spring所需的处理开销也是微不足道的。此外,Spring是非侵入式的:典型地,Spring应用中的对象不依赖于Spring的特定类。

控制反转----Spring通过一种称作控制反转(IoC)的技术促进了松耦合。当应用了IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。你可以认为IoC与JNDI相反——不是对象从容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它。

面向切面——Spring提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务(例如事务(transaction)管理)进行内聚性的开发。应用对象只实现它们应该做的——完成业务逻辑——仅此而已。它们并不负责(甚至是意识)其它的系统级关注点,例如日志或事务支持。

框架——Spring可以将简单的组件配置、组合成为复杂的应用。在Spring 中,应用对象被声明式地组合,典型地是在一个XML文件里。Spring也提供了很多基础功能(事务管理、持久化框架集成等等),将应用逻辑的开发留给了你。

2.4.3 Hibernate

Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。

Hibernate的核心接口一共有5个,分别为:Session、SessionFactory、Transaction、Query和Configuration。这5个核心接口在任何开发中都会用到。通过这些接口,不仅可以对持久化对象进行存取,还能够进行事务控制。下面对这五个核心接口分别加以介绍。

Session接口:Session接口负责执行被持久化对象的CRUD操作(CRUD的任务是完成与数据库的交流,包含了很多常见的SQL语句。)。但需要注意的是Session 对象是非线程安全的。同时,Hibernate的session不同于JSP应用中的HttpSession。这里当使用session这个术语时,其实指的是Hibernate中的session,而以后会将HttpSession对象称为用户session。

SessionFactory接口:SessionFactory接口负责初始化Hibernate。它充当数据存储源的代理,并负责创建Session对象。这里用到了工厂模式。需要注意的是SessionFactory并不是轻量级的,因为一般情况下,一个项目通常只需要一个SessionFactory就够,当需要操作多个数据库时,可以为每个数据库指定一个SessionFactory。

Configuration接口:Configuration接口负责配置并启动Hibernate,创建SessionFactory对象。在Hibernate的启动的过程中,Configuration类的实例首先定位映射文档位置、读取配置,然后创建SessionFactory对象。

Transaction接口:Transaction接口负责事务相关的操作。它是可选的,开发人员也可以设计编写自己的底层事务处理代码。

Query和Criteria接口:Query和Criteria接口负责执行各种数据库查询。它可以使用HQL语言或SQL语句两种表达方式。

2.5 MySQL数据库

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司。Mysql是最流行的关系型数据库管理系统,在WEB应用方面MySQL

是最好的RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL所使用的SQL语言是用于访问数据库的最常用标准化语言。MySQL软件采用了双授权政策,它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL作为网站数据库。

与其他的大型数据库例如Oracle、DB2、SQL Server等相比,MySQL自有它的不足之处,但是这丝毫也没有减少它受欢迎的程度。对于一般的个人使用者和中小型企业来说,MySQL提供的功能已经绰绰有余,而且由于MySQL是开放源码软件,因此可以大大降低总体拥有成本。

2.6 Tomcat的介绍

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应对HTML(标准通用标记语言下的一个应用。)页面的访问请求。实际上Tomcat 部分是Apache 服务器的扩展,但它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。

当配置正确时,Apache 为HTML页面服务,而Tomcat 实际上运行JSP 页面和Servlet。另外,Tomcat和IIS等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。不过,Tomcat处理静态HTML的能力不如Apache服务器。

Tomcat 很受广大程序员的喜欢,因为它运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统常用的功能;而且它还在不断的改进和完善中,任何一个感兴趣的程序员都可以更改它或在其中加入新的功能。

2.7软件平台和开发工具

综合考虑实际情况,决定选择一下软件平台和开发工具:

(1)软件平台

数据库:MySQL及SQLyog

操作系统:window7

(2)开发工具

开发语言:Java

开发工具:MyEclipse,Tomcat7.0

3 系统设计

3.1 需求分析

“民以食为天”,随着人民生活水平的提高,餐饮业在服务行业中占有越来越重要的地位。努力在当前餐饮行业日趋激烈的竞争中脱颖而出,已成为每位餐饮业经营者所追求的目标。网络订餐实现了小店面大作为的成本效益,解决了因为店面小的限制而无法提高营业额的难题,是一个小投入大成效的经营新模式。在网上参观订餐的人相对网下人来说还是比较少,一个是对网上餐馆的信用度持疑虑态度;另一个是网上订餐只可以看到物品的说明简介和外观,没有看到实体于细节处,无法通过快速浏览确定是不是自己想要的菜品。而这正是传统的实体餐馆优于网上餐馆的地方。而在网上订餐的人都是一般都是对电脑比较熟练的人,也就就是比较年青化的消费群体。就是白领、大学生、高中生和对计算机操作相对比较熟的人。因为这些人工作都比较忙,而且对计算机也比较熟,思想也比较超前,对于在网上订餐能够接受,并经常上网订餐。

对于当代大学生,学校僧多粥少的现象已让学生叫苦不迭。每当下课铃响起,浩瀚大军涌入餐厅顿时让人毫无食欲。另一方面,食堂工作人员无法准确获得用餐学生数量和喜欢的菜别,改造成供与求不对等。一则来餐厅消费的学生会减少,二来会造成食材的浪费。所以网上订餐系统很好地解决了上述问题,让就餐更快捷方便。

3.2 系统使用对象介绍

3.2.1 普通用户

任何用户访问网上订餐系统均可浏览菜单等信息,但是如果用户首次订餐,则必须注册,然后登录方可进行订餐。用户在系统中可以查看菜单、菜价等详细信息,也可以进行注册,登录找回密码的操作。用户选好菜之后,就可以将其放入购物车中,系统会对用户所购的菜品进行汇总计算,得到数量、总价等信息,使用户一目了然。用户也可以对已放入购物车的商品进行编辑数量、删除等操作;在确认自己要购买这些商品后,用户填写个人相关信息,如电话、地址、送餐时间以及一些备注信息等,以便商家根据信息进行送货。用户还可以将订单信息发送到个人邮箱中作为备忘。

此外,用户可以在系统留言板上进行留言,可以对菜品进行评价等,有助于

商家提高服务质量、方便用户选择更适合自己的菜品。用户还可以查询个人订单信息,包括历史订单和未处理订单等。

具体功能如下图(图3-1)所示:

图3-1 普通用户功能图

3.2.2 管理员

管理员是维护系统正常运行、实时监控系统的最高权限的管理人员。管理员在登录管理系统后,不但可以对普通用户进行操作,而且可以对系统进行管理。进入管理界面后,管理员可以查看销售报表,查询、查看订单等操作,以及确认订单已经付款并将其设置为已付款状态。在订单管理方面,管理员可以对菜单进行增加、修改、删除等操作。在用户管理方面,管理员也可以对用户进行增加、删除、修改等操作,同时管理员还可以添加管理员账号。在留言管理方面,管理员可以对用户留言进行查看、回复,甚至删除用户留言等操作。

该系统的所有操作都是围绕普通用户和管理员进行设计的,从而使用户更加容易使用本系统,增加用户体验,保证系统的安全,同时也有利于管理员的管理。

具体功能如下图(图3-2)所示:

图3-2 管理员功能图

3.3 系统功能

前台功能图(如图3-3)主要包括客户进入网站后进行的相应操作。首先,客户需要注册会员登录,如果不注册会员则不能进行订餐的下一步操作。其次,会员注册成功后,以会员身份登录网站,则可以进行搜索菜品,网上订餐,订单信

息查询修改,以及网站留言等功能。

图3-3前台功能图

后台功能图(如图3-4)主要介绍系统管理员登录网站后台进行的相应操作。

首先,管理者需登录管理员帐户进入网站后台管理模块。其次,登录成功后,可

进行系统用户管理、菜品信息管理、网站新闻发布、留言信息管理等。

相关主题