1、(2023 届)届)本科毕业设计(论文)资料本科毕业设计(论文)资料 题 目 名 称题 目 名 称 :基于基于 WebWeb 的外卖系统的设计与实现的外卖系统的设计与实现 学 院(部)学 院(部):计算机与通信学院计算机与通信学院 专业专业 :计算机科学与技术计算机科学与技术 学 生 姓 名学 生 姓 名 :邵辉邵辉 班级班级:计算机计算机 1202 学号:学号:指导教师姓名指导教师姓名:曾志高曾志高 职称:职称:副专家副专家 最终评估成绩最终评估成绩 :湖南工业大学教务处湖南工业大学教务处 2023 届届 本科毕业设计(论文)资料本科毕业设计(论文)资料 第一部分第一部分 毕业论文毕业论文
2、(2023 届)届)本科毕业设计(论文)资料本科毕业设计(论文)资料 题 目 名 称题 目 名 称 :基于基于 WebWeb 的外卖系统的设计与实现的外卖系统的设计与实现 学 院(部)学 院(部):计算机与通信学院计算机与通信学院 专业专业 :计算机科学与技计算机科学与技术术 学 生 姓 名学 生 姓 名 :邵辉邵辉 班级班级:计算机计算机 122 学号:学号:指导教师姓名指导教师姓名:曾志高曾志高 职称:职称:副专家副专家 最终评估成绩最终评估成绩 :2023 年年 5 月月 湖南工业大学湖南工业大学 本科毕业论文(设计)诚信声明本科毕业论文(设计)诚信声明 本人郑重声明:所呈交的毕业论文(
3、设计),题目基于 Web 的外卖系统的设计与实现是本人在指导教师的指导下,进行研究工作所取得的成果。对本文的研究作出重要奉献的个人和集体,均已在文章以明确方式注明。除此之外,本论文(设计)不包含任何其他个人或集体已经发表或撰写过的作品成果。本人完全意识到本声明应承担的责任。作者署名:邵辉 日 期:2023 年 5 月 20 日摘摘 要要 随着外卖订外卖在高校越来越普及,传统的电话订外卖给顾客跟外卖店带来不方便,如何使订外卖更快速,更方便已成为众多高校学生关注的问题了。本外卖订外卖管理系统是针对高校外卖店进行具体的需求分析,采用 OOA(面向对象分析)和采用 UML工具辅助开发分析,基于 S2S
4、H(Struts2+Spring+Hibernate)架构进行设计和开发。论文重要描述外卖订外卖管理系统的开发流程,分别从需求分析和系统设计、具体设计与系统实现这几个阶段进行描述。关键词关键词:WEB;订外卖管理系统;S2SH;OOA ABSTRACT With more and more popular in universities order take-out,due to the traditional telephone reservation for customers to bring inconvenience take-away meal,how to make more q
5、uickly,more convenient has become the concern of the students.The take-away meal management system in colleges and universities is the concrete take-away demand analysis,using object-oriented analysis(OOA)and using UML tools to assist in the development,using Struts2-Spring-Hibernate framework to de
6、sign and development.Thesis mainly describes take-away meal management system process,separately from the demand analysis and system design,detailed design and realization of this system are described several stages.Key words:WEB;meal management system;S2SH;OOA 目目 录录 第 1 章 绪 论 错误错误!未定义书签。未定义书签。1.1 背
7、景 错误错误!未定义书签。未定义书签。1.2 湖南工业大学外卖订外卖行业实际情况的分析 错误错误!未定义书签。未定义书签。1.3 外卖订外卖管理系统的可行性分析及其作用 错误错误!未定义书签。未定义书签。1.4 系统简介 错误错误!未定义书签。未定义书签。第 2 章 外卖系统设计与实现的关键技术 错误错误!未定义书签。未定义书签。2.1 引言 错误错误!未定义书签。未定义书签。2.2 struts2 技术介绍 错误错误!未定义书签。未定义书签。2.3 hibernate 技术介绍 错误错误!未定义书签。未定义书签。2.4 spring 技术介绍 错误错误!未定义书签。未定义书签。2.5 数据源
8、技术介绍 错误错误!未定义书签。未定义书签。2.6 小结 错误错误!未定义书签。未定义书签。第 3 章 系统需求分析 错误错误!未定义书签。未定义书签。3.1 引言 错误错误!未定义书签。未定义书签。3.2 UML 错误错误!未定义书签。未定义书签。3.3 需求分析 错误错误!未定义书签。未定义书签。3.4 系统功能 错误错误!未定义书签。未定义书签。3.5 小结 错误错误!未定义书签。未定义书签。第 4 章 系统设计 错误错误!未定义书签。未定义书签。4.1 引言 错误错误!未定义书签。未定义书签。4.2 系统总体结构 错误错误!未定义书签。未定义书签。4.3 系统架构方式 错误错误!未定义
9、书签。未定义书签。4.4 建立数据库表 错误错误!未定义书签。未定义书签。4.4.1 系统信息数据库表设计 错误错误!未定义书签。未定义书签。4.4.2 映射文献的编写 错误错误!未定义书签。未定义书签。4.5 具体设计 错误错误!未定义书签。未定义书签。4.5.1 类设计 错误错误!未定义书签。未定义书签。4.5.2 外卖订外卖系统流程分析 错误错误!未定义书签。未定义书签。4.5.3 时序图分析 错误错误!未定义书签。未定义书签。4.5.4 系统重要界面设计 错误错误!未定义书签。未定义书签。第 5 章 系统实现 错误错误!未定义书签。未定义书签。5.1 引言 错误错误!未定义书签。未定义
10、书签。5.1 开发工具和环境 错误错误!未定义书签。未定义书签。5.2 环境搭配 错误错误!未定义书签。未定义书签。5.3 编码实现 错误错误!未定义书签。未定义书签。5.3.1 DAO 层的编写 错误错误!未定义书签。未定义书签。5.3.2 Service 层的编写 错误错误!未定义书签。未定义书签。5.3.3 Web 层的编写 错误错误!未定义书签。未定义书签。5.3.4 ajax 的应用 错误错误!未定义书签。未定义书签。5.4 小结 错误错误!未定义书签。未定义书签。结 论 错误错误!未定义书签。未定义书签。参考文献 错误错误!未定义书签。未定义书签。致 谢 错误错误!未定义书签。未定
11、义书签。第第 1 1 章章 绪绪 论论 1.1 背景 随着社会的不断进步和创新,人们的生活方式也发生了很大的改变,其中外卖和餐饮行业以每年平均 22%的速度不断增长,不久成为了中国国民经济中的发展行业最快的之一。随着人们生活水平的不断提高,在城市中工作人群的步伐也越来越快,有时候主线没有时间自己做饭,这样就促进了外卖行业的发展,在我国大学内餐饮行业中的外卖行业就是发展最为迅速的一个行业,在湖南工业大学每年都有几家新的负责外卖的餐厅的的产生。外卖订外卖也已经成为湖南工业大学学生生活中不可或缺的一部分活动了,并且订外卖的方式也随着大学学生们的规定不断提高,不断的创新化和成熟化。1.2 湖南工业大学
12、外卖订外卖行业实际情况的分析 学生们通过打电话给外卖餐厅服务员来定外卖是湖南工业大学当前使用人数最多的订外卖方式,其中比较大的外卖店有攸县大碗菜、祝家庄、水晶锅等都是采用电话订外卖方式,但通过电话订外卖方式存在不少的缺陷和局限性,比如:效率和时间的问题、打电话的电话费成本问题等等。对当前湖南工业大学外卖订外卖行业的实际情况分析如下:外卖订外卖店铺很多并且菜单丰富,店铺之间一直都在竞争。外卖店铺很多都是服务员接听客户的电话并手动记录下外卖的信息,特别是在放学期间,外卖店铺订外卖电话很多时,很容易发生店铺订外卖电话打不通的情况。外卖店铺在接听客户订外卖时,由于客户不熟悉外卖店铺的菜单,在于服务员沟
13、通时会浪费很多的时间,容易导致外卖订外卖电话占线的情况。外卖店铺不能及时的获取学生的喜好,容易导致有的菜浪费,有的菜不够的情况。通过度析湖南工业大学的周边的外卖行业的实际情况,很容易发现我国国内大学校园周边的外卖店基本上数都是依靠服务员记录的管理方式,很少外卖店实行外卖订外卖管理的信息化,因此电话订外卖导致了不少的问题。1.3 外卖订外卖管理系统的可行性分析及其作用 根据以上分析得出传统的依靠打电话订外卖不仅会导致学生的不方便,此外也对外卖店铺的生意产生了不良影响。通过度析得出实行电话订外卖有以下几个缺陷:在天天中午和晚上餐厅高峰期间,外卖店铺假如只有一台电话是不够的,很容易导致电话占线、餐馆
14、服务员忙但是来、比较仓促、导致双方态度恶劣,引起不必要的麻烦。学生打电话一般不知道餐厅有什么菜,所以导致点餐很麻烦,也要浪费很多的时间,假如餐馆去学生发传单,也会导致额外的开销。学生通过电话订外卖,总是会产生一定的电话费用,这个费用也是额外的开销。通过以上综合的分析,实行打电话订外卖不仅不会促进外卖行业的发展,反而会成为外卖行业发展的绊脚石,所以实行订外卖管理的信息化是势在必行的,假如外卖管理系统对学生订外卖流程实行信息化管理,不仅给订外卖顾客带来了很大的方便,也会给外卖店铺带来了经济和效率收益。订外卖管理系统信息化给顾客和外卖店带来了双赢。对于顾客,不用再紧张高峰期打电话订外卖失败了,顾客可
15、以通过浏览器在在外卖店铺网上浏览相关菜单,还可以添加自己喜欢的菜单,在一定限度上解决了曾经的那种打电话订外卖导致菜单犯错的现象。也为外卖店铺带来了很大的收益和长远的利益,也能减少外卖店的人力和财力和物力,通过外卖管理系统信息化也能使外卖店可以及时掌握学生客户市场的信息,及时推出新菜系和实行更有效的经营管理策略。1.4 系统简介 基于 WEB 的外卖系统重要针对的是大学校园的订外卖流程和对订单解决实行信息化而搭建出来的 B/S 外卖购物平台,学生客户可以通过浏览器上网访问外卖网站,也可以实现网上浏览菜单和订自己喜欢的菜单到购物车中,外卖店铺服务员通过后台管理登陆该系统实现对订单的解决操作,通过外
16、卖信息化解决给学生客户订外卖带来方便,同时也给外卖店管理人员带来了长远利益。第第 2 2 章章 外卖系统设计与实现的关键技术外卖系统设计与实现的关键技术 2.1 引言 基于WEB的外卖管理系统的设计与实现选取S2SH架构作为基本设计理念来设计和开发,由于 S2SH 是 SSH 的升级版,以前的 SSH 架构中的用到的 MVC 框架是 struts,而 S2SH中的 MVC 框架用到的是 struts2,在 Struts 框架方面有很大的改善,struts2 与 struts在实际配置方面有很大的不同,其中 struts2 的配置更灵活、开发更加方便,研究人员运用其开发的插件与 hibernat
17、e 和 spring 都能达成无缝集成,此外本管理系统采用了三层架构,一方面用 struts2 解决网站的前端,用 hibernate 封装对数据库的访问操作,使用 spring 对 struts2、hibernate 和业务逻辑层中进行数据对象的管理和连接,struts2、hibernate 和 spring 三个框架有个字不同的职责,这样分层设计有助于系统项目开发的分工,也能使项目开发达成更高的灵活性和可维护性。S2SH 三层架构如图 1.1所示。图 1.1 S2SH 三层架构图 2.2 struts2 技术介绍 Struts2 是目前功能比较完善的 Web 系统常用的开发框架,Strut
18、s2 框架是 Struts 1.X 的升级和完善的版本,Struts 2 框架集合了 Struts 1.X 框架和 WebWork 框架功能中的优点。相对比较 Struts 1.X,Struts2 在功能上已有了非常大的改善,一方面是取消了ActionForm,另一方面是减少了框架组件之间的耦合度,Struts 2 中的 Action 部件只是普通的 Java 类(POJO),使用它可以给模块测试的工作带来了极大的简便。Struts2 也提供了强大的整合能力,支持多种返回结果类型,改善了 Struts 1.X 的标签库,引入 OGNL表达式和值栈的概念,给开发者带来了更好的体验1。此外从全局功
19、能的角度来看,Struts2 在一定限度上是一个 pull(拉)功能类型的 MVC 理论的框架,此外它与传统类型的 MVC 框架理论的区别方面就在于在 Struts2 中,在其中 Action 部件担任的是模型的部分,而不是控制器的部分,虽然它的部分功能仍然有一些重合。“pull”的动作由视图发起,它直接从 Action 里拉取所需的数据,而不是此外还需要一个单独的模型对象存在2。图 1.2 MVC/Struts2 架构图 图 1.2 描述了 MVC/Struts2 架构中的模型层、视图层和控制器层的流程。如图所示:控制器层通过 Struts2 分布 Servlet 过滤器来实现功能。模型层在
20、功能上通过 Action 部件实现,视图层则通过结果类型和结果组合实现。值栈和 OGNL 提供了公共的线程和链接通道,在一定限度上可以使得不同组件之间可以互相的集成。Struts2 框架的可取之处就是使用了 Action 部件代理,Action 代理可以根据系统预先配置好的配置文献,加载一系列的 Servlet 拦截器。由拦截器将 HttpServletRequest 参数解析出来,传入到 Action部 件 当 中。同 样,Action 部 件 解 决 的 数 据 也 是 通 过 Servlet 拦 截 器 传 入HttpServletResponse,然后由 HttpServletRequ
21、est 将数据结果传给用户。其实,上面的解决过程是典型的 AOP 理论的方式,Struts2 解决过程模型如图 1.3 所示。Action代理代理拦截器拦截器1拦截器拦截器2拦截器拦截器3Action类类 图 1.3 Struts2 解决过程模型图 2.3 hibernate 技术介绍 Hibernate是一个优秀的轻量级的ORM框架,开发人员可以通过使用Hibernate框架。在一定限度上允许开发人员使用面向对象的方式对系统的数据库进行检索访问。这样就可以避免使用 JDBC 方式连接和访问数据库,不会导致面向对象编程与面向过程编程在数据库方面的冲突。在这种方式下,很多系统的设计应用的面向对象
22、分析、面向对象设计和面向对象编程有很大的相同性,这样让系统的分析和设计更加简洁。Hibernate 框架作为 Java EE 持久化的标准框架,让然使用传统的 POJO 做为系统的持久化类。同时具有低侵入式的系统设计这样不会导致代码方面的污染。系统的持久化类无需继承任何 Hibernate 基类,或者实现任何 Hibernate 接口,提供了极好的代码复用4。Hibernate 框架与数据库、应用程序关联关系如图 1.4 所示。图 1.4 Hibernate 关联关系图 虽然 Hibernate 这个框架还处在发展的阶段,产生的时间不长,但是已经成为当今社会编程方面最流行的持久层解决方案,和另
23、一个持久层框架 iBATIS 比较来说,Hibernate框架更具有面向对象的特性;此外和传统的 Entity EJB 的持久层解决方案相比较,Hibernate 框架则使用低侵入式的设计理念,也就是完全采用普通的 Java 对象(POJO)类型,而不必继承 Hibernate 的某个父类或实现 Hibernate 框架中的某个功能接口。Hibernate 框架是面向对象的程序设计语言和连接关系数据库之间的纽带,此外Hibernate 框架也允许程序员采用面向对象的方式来操作关系数据库。2.4 spring 技术介绍 Spring 框架是一个优秀轻量级的 Web 开发框架。Spring 框架是
24、一个分层的架构,由7 个模块组成,如下图 1.5 所示。Spring 框架中比较重要的模块是核心容器模块,其他模块构建在这个核心的模块容器之上,核心模块是其它模块的基础,核心容器定义创建、配置和管理 Bean 的方式和操作,核心模块容器提供了 Spring 框架的基本功能。其中重要组件是 BeanFactory 组件,BeanFactory 组件是工厂模式的实现类。BeanFactory 组件通过使用反转控制(IOC)模式,将应用程序的配置文献和依赖性规范与实际的应用程序代码分隔开来。图 1.5 spring 七大模块图 组成 Spring 框架的每个模块(或组件)在一定的限度上都可以单独存在
25、的,或者也可以与其他一个或多个模块一起实现某种功能而存在。其中每个模块的功能如下:核心模块容器:核心容器提供 Spring 框架的基本功能。核心容器的重要组件是 BeanFactory 组件,BeanFactory 组件是工厂模式的实现类。BeanFactory 组件使用控制反转(IOC)模式将应用程序的配置文献和依赖性规范与实际的应用程序代码分隔开来。Spring 上下文模块:Spring 上下文模块是一个配置文献,它的作用是向 Spring 框架提供上下文的信息。Spring 上下文信息涉及公司服务,例如 JNDI 组件、EJB 组件、电子邮件、国际化组件、校验组件和调度功能等。Sprin
26、g AOP 模块:通过配置管理特性,Spring AOP 模块可以直接将面向对象的编程功能所有集成到了 Spring 框架之中。所以使用 Spring AOP 模块可以很简朴地使 Spring 框架管理的任何对象支持都 Spring AOP 模块。Spring AOP 模块为基于 Spring 的应用程序中的对象提供了事务管理服务等功能。程序开发人员通过使用 Spring AOP 模块,可以不用依赖 EJB 组件,就毫无问题地将声明性的事务管理等功能全都集合到应用程序代码中。Spring DAO 模块:JDBC DAO 模块中的抽象层概念提供了有很大实用性的异常理论结构,程序员可用该结构去记录
27、异常解决和不同数据库供应商之间抛出的错误信息。异常层次结构简化了错误解决,并且极大地减少了需要编写的异常代码数量(例如打开和关闭连接)。Spring DAO 的面向 JDBC 的异常遵从通用的 DAO 异常层次结构。Spring ORM:Spring 框架插入了若干个 ORM 框架,从而提供了 ORM 的对象关系工具,其中涉及 JDO、Hibernate 和 iBatis SQL Map。所有这些都遵从 Spring 的通用事务和 DAO 异常层次结构。Spring Web 模块:Web 上下文模块建立在应用程序上下文模块之上,为基于 Web 的应用程序提供了上下文。所以,Spring 框架支
28、持与 Jakarta Struts 的集成。Web 模块还简化了解决多部分请求以及将请求参数绑定到域对象的工作。Spring MVC 框架:MVC 框架是一个全功能的构建 Web 应用程序的 MVC 实现。通过策略接口,MVC 框架变成为高度可配置的,MVC 容纳了大量视图技术,其中涉及 JSP、Velocity、Tiles、iText 和 POI5。2.5 数据源技术介绍 JNDI(Java Naming and Directory Interface,Java 命名和目录接口)是一组在 Java应用中访问命名和目录服务的 AP,通过名称将资源与服务进行关联1。在系统中使用 JNDI连接池连
29、接 Oracle 数据库。连接池是在内存中预设好一定数量的连接对象,以备用户在进行数据库操作时直接使用,与传统数据库连接比较,使用数据池技术数据库操作性能得到提高,通过连接池管理数据库的连接与释放、提高了系统资源的使用效率1。Java 程序访问数据库时,只需要从连接池中取出空闲状态的数据库连接;当程序访问数据库结束,再将数据库连接放回连接池1。在系统服务器 Tomcat 中配置内容如下所示:Tomcat 配置文献:其中标签的功能如下:Name:表达指定的 jndi 名称。Auth:表达认证方式,一般为 Container。Type:表达数据源床型,使用标准的 javax.sql.DataSou
30、rce。maxActive:表达连接池当中最大的数据库连接。maxIdle:表达最大的空闲连接数。maxWait:当池的数据库连接已经被占用的时候,最大等待时间。Username:表达数据库用户名。Password:表达数据库用户的密码。driverClassName:表达 JDBC DRIVER。url:表达数据库 URL 地址。2.6 小结 基于 WEB 的外卖订外卖系统的设计与实现重要分为管理员操作和客户操作,系统从需求分析到模型设计,再到代码编写都是按照 MVC 三层的设计理念,将系统简化为视图层(View)、控制层(Controller)和模型层(Model),并且在 View 层与
31、 Model 层之间使用接口Service 连接,Model 层和 Controller 层之间使用 DAO 接口,减少了层与层之间的耦合度,为以后修改代码更加方便。同时在检索数据库时建立一个数据次,可以减少打开和关闭数据库的次数,有效地提高系统的运营效率,对经常登录的用户可以带来不久的反映速度。第第 3 3 章章 系统需求分析系统需求分析 3.1 引言 本系统采用 OOA(面向对象分析)和 UML(Unified Modeling Language)工具为指导理论,第三章重要对系统的需求分析以及系统设计和功能等进行分析描述。3.2 UML UML(Unified Modeling Langu
32、age)是一种用来创建程序模型的图形语言(即带有语意的一种图形记号)7,常用的 UML 图有对象类图、时序图、用例图、活动图和状态图。3.3 需求分析 软件需求分析是软件开发过程中生存期中非常重要的一步,是起到决定性作用的一步。需求分析是软件定义过程中一个必不可少的阶段,它的作用是让开发者明白系统需要做些什么,能完毕什么功能。本外卖订外卖管理系统涉及两个子系统,前台订外卖和后台管理,前台订外卖是供用户浏览菜系和提交订单进行订外卖;后台管理是供管理员进行外卖订单管理、菜系管理、菜单管理。外卖订餐管理系统重要的作用是满足学生和个人之间的吃饭需求,要解决目前餐厅信息阻塞,许多的资源机会而被流失,所以
33、网上外卖订餐管理系统的出现很好的解决的这一问题。该系统分为前台和后台,前台是个人会员用的,个人通过注册成为网站会员,然后登录网站系统,可以查看餐厅大量的外卖信息,并可以选择自己喜欢的菜添加到购物车。系统后台管理是管理员对本系统进行管理的平台,管理员可以更新菜系信息和菜单信息,并可以对订餐的状态进行管理。3.4 系统功能 本系统采用面向对象分析方法,下面是对本系统的两个子系统进行分析说明。通过需求分析跟系统设计和功能的分析可以得出该系统的总体结构如图 3.1 所示。外卖订餐管理系统 前台订餐 后台管理 用户登录、注册、浏览菜式、提交订单 订单管理 统计报表 菜式管理 系统管理 图 3.1 系统总
34、体框架图 前台管理系统供用户浏览菜系,进行菜单添加到购物车,用户可以对购物车进行增长、清除,用户提交订单后可以在订单列表查看外卖订单配送状态,用例如图 3.2 所示。用户用户注册登录浏览菜系和菜单添加到购物车查看购物车提交订单查看订单 图 3.2 用户用例图 后台管理系统有菜系管理、订单管理、菜单管理三大模块。菜系管理:可以对菜系进行查看、添加、修改和删除。用例如图 3.3 所示。管理员添加菜系查看菜系更新菜系删除菜系 图 3.3 菜系管理用例图 订单管理:可以对外卖订单的状态进行查看,改变。用例如图 3.4 所示。管理员删除订单查看订单明细修改订单配送状态确认发货 图 3.4 订单管理用例图
35、 菜单管理:可以对菜单进行查看、添加、修改和删除。用例如图 3.5 所示。管理员添加菜单查看菜单删除菜单更新菜单 图 3.5 菜单管理用例图 3.5 小结 系统项目在开始之前首要任务就是系统需求的分析,根据搜集的需求分析得出系统的模型设计,在需求分析时要根据实际情况分析,往往需求的分析是否全面影响着后续系统的编写。第第 4 4 章章 系统设计系统设计 4.1 引言 本系统的设计采用 OOA(面向对象分析)和运用 UML 工具辅助开发设计。4.2 系统架构方式 本系统使用 MVC 三层架构模式作为系统的设计理念,即视图层,业务逻辑层,数据访问层,三层之间都互相独立,视图层与业务逻辑层通过接口进行
36、通信,业务逻辑层与数据访问层也是通过接口进行通信,数据访问层是直接跟数据库(DB)通信,可以直接操作数据库,这样系统设计具有很好的解耦性,每一层内容的逻辑的改变和更新不会影响到另一层的逻辑代码,这样对项目以后的可维护性及代码更新具有很大方便作用,三层架构流程如图 4.1 所示。展现层浏览器业务逻辑层数据访问层数据库 图 4.1 三层架构图 4.3 数据库设计 数据库设计涉及了数据库需求分析、概念设计以及逻辑设计。数据库的需求分析是根据开发系统的功能对数据库进行需求分析来得出数据库需要的表以及表属性。概念设计是根据需求分析来设计数据库的实体结构图以及 ER 图。逻辑设计是根据概念设计中的ER 模
37、型设计数据库的表结构。4.3.1 数据库需求分析 本系统使用的是 Oracle 数据库,从系统的需求分可以看出,系统需要建立用户表、菜系表、购物车表、订单表。从功能模块看,还需要菜单表、订单具体表、购物车项表。系统的数据库包含如下:1.个人用户数据:用来存储个人信息,如账号,密码联系方式等。2.菜系数据:用来存储菜系信息,如菜系名称,菜系内容等。3.菜单数据:用来存放菜单信息,如菜单名称,介绍等。4.订单数据:用来存放订单信息,如姓名,地址等。5.购物车数据:用来存放外卖信息,如菜单数量,菜单价格等。6.订单具体数据:用来订单具体信息,如订单所属用户,订单项等。7.购物车项数据:用来存放购物车
38、项信息,如菜单信息,数量等。4.3.2 E-R 模型 在数据库的概念设计中以实体联系法建立 E-R 模型,用 E-R 模型表达概念结构,得到外卖订餐管理系统的概念模型。E-R 模型的基本元素是:实体、联系和属性。实体是数据对象,是应用中可以区分的客观的存在的事物;联系表达一个或多个实体之间的关联关系;可以描述实体对象某一特性的属性称为实体属性,在实体中,可以唯一标记实体的作用的属性,它被称之为“实体标记符”。根据以上数据库的需求分析可以得到系统中需要的实体类型,进一步可以分析实体所需要的属性以及各实体之间的联系。系统中的实体结构图以及系统 E-R 模型图如图 4.2 至 5.2 所示。会员会员
39、ID用户名密码性别地址联系电话客户类型 图 4.2 会员实体图 会员实体属性有:会员 ID、用户名、密码、等,这些都是不可少的;其中 ID 更是作为标记存在。订单订单序号订单时间订单状态订单价格所属用户ID 图 4.3 订单实体图 订单实体属性有:订单 ID、订单时间、订单价格等,这些都是不可少的;其中 ID更是作为标记存在。菜系序号菜系名称菜系描述 图 4.4 菜系实体图 菜系实体属性有:菜系 ID、菜系名称、菜系描述等,这些都是不可少的;其中 ID更是作为标记存在。菜单菜单序号菜单名称菜单图片菜单描述菜单价格所属菜系序号 图 4.5 菜系实体图 菜单实体属性有:菜单 ID、菜单名称、菜单描
40、述等,这些都是不可少的;其中 ID更是作为标记存在。4.4 建立数据库表 很多程序员都是使用传统的数据库设计,就是一方面设计图,然后在通过 E-R图生成数据表。使用 MVC 三层设计理念,就是先建立系统实体类和编写实体类的映射文献,接着通过实体类和映射文献之间的关系自动生成相关的数据库表。这种开发模式重要体现出来的是 OOD 思想,数据的持久化在某一方面都是非常机械呆板的,基本没有什么需要变动的,hibernate 框架就把这些独特的行为抽象出来自动完毕,并在转换的效率上进行优化等,让我们很容易的就能实现数据库的移植。本系统是采用先建立实体类和编写映射文献,然后根据之间的关系自动生成数据表的开
41、发模式。系统设计的实体类如下表 4.1 所示。表 4.1 实体类设计表 4.4.1 系统信息数据库表设计 如下表 4.2 所示:数据库表 Category 是存储外卖系统中菜系的信息。其中 id 字段是作为菜系的序号,name 字段是作为菜系的名称,description 字段是作为菜系的介绍。表 4.2 实体类 Category 如下表 4.3 所示:数据库表 Order 是存储外卖系统中外卖订单的信息。其中 id 字段 作为订单的序号,Ordertime 字段是作为订单的提交时间,price 字段是作为订单的价格,state 字段的作用是标记订单的状态,user_id 字段作为订单所属用户
42、的序号。表 4.3 实体类 Order 类名 功能说明 User 用户类 Order 订单类 OrderItem 订单项类 Category 菜系类 Menu 菜单类 Cart 购物车类 CartItem 购物车项类 字段名 类型 是否为空 是否主键 备注 id Varchar2(30)是 序号 name Varchar2(30)否 菜系名称 description varchar2(200)否 菜系描述 如下表 4.4 所示:数据库表 User 是存储该系统中注册客户的个人信息。其中 id 字段 作为用户的序号,username 字段是作为用户的登陆名,password 字段作为用户登录的密
43、码,cellphone 字段的作用是存储用户的联系电话,address 字段作为用户外卖配送的地址,sex 字段是存储用户的性别信息,types 字段存储用户的会员类型。表 4.4 实体类 User 如下表 4.5 所示:数据库表 OrderItem 是存储外卖系统中外卖订单项的信息。其中 id字段作为订单项的序号,quantity 字段是作为订单项的数量,price 字段是作为订单项的价格,menu_id 字段作为订单项中包含的菜单的序号,order_id 字段作为订单项所属订单的序号。表 4.5 实体类 OrderItem 字段名 类型 是否为空 是否主键 备注 id Varchar2(4
44、0)是 序号 ordertime date 否 订单时间 price number 否 订单价格 state number 否 订单状态 user_id Varchar2(100)否 所属用户id 字段名 类型 是否为空 是否主键 备注 id Varchar2(40)是 序号 username Varchar2(40)否 用户名 password Varchar2(40)否 密码 cellphone Varchar2(40)否 电话 address Varchar2(100)否 地址 sex Varchar2(4)否 性别 types Varchar2(20)否 客户类型 如下表 4.6 所示
45、:数据库表 Menu 是存储外卖系统中外卖菜单的信息。其中 id 字段 作为菜单的序号,name 字段是存储菜单的名称信息,description 字段是存储菜单的介绍信息,image 字段的作用是存储菜单的实际图片,price 字段的作用是作为菜单的售价,Category_id 字段的作用是存储该菜单所属菜系类别的序号信息。表 4.6 实体类 Menu 4.4.2 映射文献的编写 在该系统中 Web.xml 文献的功能使初始化配置信息。context.xml 文献的功能使配合JNDI 连接数据库。Web.xml 文献如下:FD CharacterEncodingFilter 字段名 类型 是
46、否为空 是否主键 备注 id Varchar2(50)是 序号 quantity date 否 数量 price number 否 购物项价格 menu_id varchar2(60)否 菜单序号 order_id varchar2(50)否 所属订单序号 字段名 类型 是否为空 是否主键 备注 id Varchar2(30)是 序号 name Varchar2(30)否 菜单名称 description varchar2(100)否 菜单描述 image varchar2(100)否 菜单图片 price number 否 菜单价格 Category_id Varchar2(30)否 所属菜
47、系序号 com.filter.CharacterEncodingFilter CharacterEncodingFilter /*HtmlFilter com.filter.HtmlFilter HtmlFilter /*com.filter.IndexListener UserServlet com.web.client.UserServlet MenuServlet com.web.manager.MenuServlet CategoryServlet com.web.manager.CategoryServlet BaseServlet com.web.manager.BaseServl
48、et ManagerOrderServlet com.web.manager.ManagerOrderServlet IndexServlet com.web.client.IndexServlet BuyServlet com.web.client.BuyServlet OrderServlet com.web.client.OrderServlet UserServlet /client/UserServlet MenuServlet /manager/MenuServlet CategoryServlet /manager/CategoryServlet BaseServlet /Bas
49、eServlet ManagerOrderServlet /manager/ManagerOrderServlet IndexServlet /client/IndexServlet BuyServlet /client/BuyServlet OrderServlet /client/OrderServlet context.xml 文献如下:4.5 具体设计 这一章节重要内容是描述了怎么样对系统的对象类进行分析和设计、系统的流程分析以及如何使用时序图对系统中的对象交互信息等进行具体的描述。4.5.1 类设计 类关系 通过面向对象分析得出在本系统中用户跟订单、订单项,订单跟订单项,购物车跟订单
50、项,菜系跟菜单都是一对多关系,用户跟购物车,订单跟购物车,菜单跟订单项都是一对一关系。其关联关系如图 4.3 所示。用户用户UserUser菜系菜系CategoryCategory菜单菜单MenuMenu购物车购物车CartCart购物车项购物车项CartItemCartItem订单订单OrderOrder订单项订单项OrderItemOrderItem1*1*1*1*1111*111111*1*图 4.3 类关联图 DAO 与业务逻辑类设计 1.UserDao 与 BusinessService 设计 如下图 4.4 所示:BusinessService 依赖于 UserDao。UserDa
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100