基于ssh的餐饮服务系统后台开发总结

去年实验室的一个项目是一个android端的餐饮查询推荐、社交平台开发,我主要是负责系统后台的功能设计与实现。

我们的后台采用的是ssh架构,架构模板据说来源于百度的项目。开发起来非常快,模板果然很强大。

下面分别从struts、hibernate、spring、数据库四个方面,从前端到后端依次介绍。

struts:我们规定系统前后台的数据交互格式是json,这样前后台数据交互十分方便,扩展性也很好。但是有个问题就是前后台的变量名必须得完全一致,一旦不一致前台将无法正确解析后台传递的数据。而且我们前后台是独立的项目,因此必须十分小心来统一定义变量,否则出现问题后前后台联调很难发现问题出在哪里。所以下一步就是让前后台使用同一个类定义,这样就不会出现变量名不一致的情况了。

hibernate:我们采用hibernate来做ORM,极大地方便了我们的开发,只需要将数据库中表通过hibernate 的配置文件映射到类中,就可以直接在Dao中对类进行操作从而实现对数据库中的表进行操作了,而且通过使用模板类BaseDao,将Dao中大部分操作在父类中实现,大大简化了Dao中的操作。而且我么避免了在hibernate的配置文件中使用级联操作,级联操作确实可以维护外键的一致性,但是会使得表类变得复杂,我们决定抛弃级联操作,手动编码维护外键的一致性。

spring:不得不说spring真的太强大了。项目中的Dao类,Service类,都是通过spring的依赖注入进行托管的,事务也是由spring进行托管的。我们只需要在配置文件中完成待依赖注入的类扫描文件路径配置。对于类、数据库连接等资源管理,spring全部都帮我们做了,而且spring采用的是注解方式的依赖注入,用起来十分方便。spring采用的面向切面的编程方式(AOP),我们在实现业务处理逻辑时可以首先只将注意力集中在接口实现上面,从而专注于业务的表达而不是具体的实现上。定义完接口后,整个项目的框架也有了,之后才是关注实现的细节。

数据库:数据库的方面,我们首先是在Mysql Workbench设计类图,E-R图,设计时要注意不要添加外键连接,否则生成表后要修改会很麻烦。通过model synchronization,直接就可以在数据库中生成相应的表,而且E-R图可直接作为数据库文档中的设计图。在数据库表设计方面,我们的表名全部采用实际意义的英文单词小写,下划线连接,列名也是如此。每张表必须有一个整型主键,并且该主键不对应实际意义。

总的来说,ssh框架分层十分清晰,action,interface,service,dao,各司其职。 但这也是ssh框架一个很大的弊端,我们只能从上往下调用,而不能进行层间调用,比如说我一个service不能调用另外一个service的功能实现。解决这个问题方法,一个是我们可以将该功能放在utils包中,作为通用类使用。其二就是如果功能设计分工合理,还是可以避免很大一部分这种问题的出现。我已经将该项目的框架模板剥离出来了,可以直接使用来实现快速开发,我会将其放在我的github上  (框架地址)。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
一、需求分析 随着社会服务行业的发展,餐饮业对自身服务的质量和能力也有了更高的要求。餐饮管理系统正是在这样的情况之下越来越受到重视。餐厅的内部服务项目众多,既需要完成前台的服务工作,还需要完成后台的管理工作,如果没有一套可靠的餐饮管理系统,单凭手工操作,不仅效率低,而且会极大地影响到酒店的服务质量。 设计的目标:实现餐饮管理的科学化、自动化,提高各个模版的办公效率,为高质量的餐饮服务提供保证。 系统功能概述 民以食为天,随着人民生活水平的提高,餐饮业在服务行业中占有越来越重要的地位。经过多年发展,餐饮管理已经逐渐由定性管理,进入到重视定量管理的科学阶段。众所周知,在定量管理的具体实现方法和手段方面,最有效的工具就是计算机管理。 传统的手工操作管理存在着许多无法避免的问题,例如: 人工计算机账单金额出现差错; 收银工作中跑单、漏单、偷钱现象普遍; 个别服务员作弊、改单、宰客情形时有发生; 客人消费单据难以保存和查询。 如果借助计算机来管理,就可以轻松的解决处理这些问题。一个餐饮管理信息系统应该包括基本的餐厅的服务管理、管理人员信息的维护等,以及与之相应的操作。所以整个餐饮管理信息系统分为两个大部分,即后台的数据管理维护和前台的操作。后台数据库的管理能保证系统各项功能正常运行,前台操作能提供给客户尽可能方便快捷的服务。 功能模块划分 1. 前台操作系统 订餐管理模块:点菜(输入桌台代码和食物代码)、加菜、下单。 结账管理模块:结账(输入桌台代码)、结账方式选择(包括现金结账、信用卡结账、支票结账、签单等)。 交班管理模块:统计当班数据(包括桌台数、人民币结账金额以及总金额等),为下班操作作准备。 2. 后台管理维护系统 用户权限设置:可以查询员工的基本资料(姓名、性别、年龄、出生年月、籍贯、家庭住址等),员工登录名称、密码、员工操作权限等,可以根据需要进行设置。 菜谱设置:新菜单录入(包括菜式名称、代码、类型、价格、成本等)、菜式修改、删除等菜式维护。 付款方式设置:分为人民币付款、信用卡、支票签单等,可以根据需要进行添加和删除。 系统流程分析 系统流程图1所示。当用户进入系统主界面以后,新用户经过注册后才能凭借其用户名和密码登录,老用户可以直接登录。用户登录以后,系统自动判断出其操作权限。操作权限包括普通员工和管理人员。新用户的操作权限默认为是普通员工。普通员工只能进行订餐、结账操作,而管理人员除此之外还可以进行系统设置与营业分析。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值