每天都要认真学习,才能更加进步。└(^o^)┘
在工作和学习的过程中要善于思考,勤于学习。并做出适当的记录,才能最快速的学习并掌握一项知识。希望在这个平台和大家一起共同成长,和大家分享一个SSM(MYECLIPSE)项目,该项目名称为基于web的java食堂管理系统。先简单介绍一下这个项目的背景:食堂管理是指以专业、先进的物流基础设施和大规模的统一采购、源头采购形成品种、价格、数量、质量上的突出优势,为各企业单位、学校、工厂和自营餐厅的客户或其他餐饮服务企业配送所需的肉类、蔬菜、豆制品、主副食品及调味料等。采用当前非常流行的B/S体系结构,以JAVA作为开发技术,主要依赖SSM技术框架,mysql数据库建立本系统。
大家在学习中编写SSM(MYECLIPSE)框架的项目时常选用的开发工具是MYECLIPSE,从上面的项目背景中,我们可以得出基于web的java食堂管理系统拥有 后台。才能让用户完整的使用该项目。
基于web的java食堂管理系统项目的登录角色包括了管理员、采购员,系统中所有的用户都是拥有账号密码字段的。其中管理员只能在后台和数据库进行添加。而其余的登录角色可以通过注册的方式成功拥有系统账号密码。
系统中菜品、食材、菜品食材之间具有较强的联系性。他们之间的关系为菜品食材的菜品与菜品的mingzi字段对应、菜品食材的菜品id与菜品的id字段对应、菜品食材的食材与食材的mingzi字段对应、菜品食材的食材id与食材的id字段对应
。在菜品食材表中可以体现出这种关系。在系统的功能中,菜谱菜品是一个重要的表。这个表使得菜谱、菜品关联了起来。在菜谱菜品表中菜谱菜品的菜谱名字与菜谱的mingzi字段对应、菜谱菜品的菜谱id与菜谱的id字段对应、菜谱菜品的菜品名字与菜品的mingzi字段对应、菜谱菜品的菜品id与菜品的id字段对应、菜谱菜品的菜品价格与菜品的jiage字段对应
,他们拥有关联关系。系统中菜谱、食材、菜谱食材之间具有较强的联系性。他们之间的关系为菜谱食材的菜谱与菜谱的mingzi字段对应、菜谱食材的菜谱id与菜谱的id字段对应、菜谱食材的食材名字与食材的mingzi字段对应、菜谱食材的食材id与食材的id字段对应、菜谱食材的食材价格与食材的jiage字段对应、菜谱食材的食材单位与食材的danwei字段对应
。在菜谱食材表中可以体现出这种关系。
总结得出基于web的java食堂管理系统项目所有数据为:管理员(admin)、食材(shicai)、菜品(caipin)、菜品食材(caipinshicai)、菜谱(caipu)、菜谱菜品(caipucaipin)、菜谱食材(caipushicai)、采购员(caigouyuan)
基于web的java食堂管理系统之管理员表
字段名 | 类型 | 属性 | 描述 id | INT(11) | PRIMARY KEY | 管理员id username | VARCHAR(255) | | 账号 password | VARCHAR(255) | | 密码
基于web的java食堂管理系统之食材表
字段名 | 类型 | 属性 | 描述 id | INT(11) | PRIMARY KEY | 食材id mingzi | VARCHAR(255) | | 名字 jiage | VARCHAR(255) | | 价格 danwei | VARCHAR(255) | | 单位
基于web的java食堂管理系统之菜品表
字段名 | 类型 | 属性 | 描述 id | INT(11) | PRIMARY KEY | 菜品id mingzi | VARCHAR(255) | | 菜品名字 jiage | VARCHAR(255) | | 价格 leixing | VARCHAR(255) | | 类型
基于web的java食堂管理系统之菜品食材表
字段名 | 类型 | 属性 | 描述 id | INT(11) | PRIMARY KEY | 菜品食材id caipin | VARCHAR(255) | | 菜品 caipinid | VARCHAR(255) | | 菜品id shicai | VARCHAR(255) | | 食材 shicaiid | VARCHAR(255) | | 食材id shicaifenliang | VARCHAR(255) | | 食材分量 shicaijiage | VARCHAR(255) | | 食材价格
基于web的java食堂管理系统之菜谱表
字段名 | 类型 | 属性 | 描述 id | INT(11) | PRIMARY KEY | 菜谱id mingzi | VARCHAR(255) | | 菜谱名字 shijian | VARCHAR(255) | | 时间 jiage | VARCHAR(255) | | 价格 shenhe | VARCHAR(255) | | 审核 leixing | VARCHAR(255) | | 类型
基于web的java食堂管理系统之菜谱菜品表
字段名 | 类型 | 属性 | 描述 id | INT(11) | PRIMARY KEY | 菜谱菜品id caipu | VARCHAR(255) | | 菜谱名字 caipuid | VARCHAR(255) | | 菜谱id caipinmingzi | VARCHAR(255) | | 菜品名字 caipinid | VARCHAR(255) | | 菜品id caipinjiage | VARCHAR(255) | | 菜品价格 renshu | VARCHAR(255) | | 人数 caipingzongjia | VARCHAR(255) | | 菜品总价
基于web的java食堂管理系统之菜谱食材表
字段名 | 类型 | 属性 | 描述 id | INT(11) | PRIMARY KEY | 菜谱食材id caipu | VARCHAR(255) | | 菜谱 caipuid | VARCHAR(255) | | 菜谱id shicai | VARCHAR(255) | | 食材名字 shicaiid | VARCHAR(255) | | 食材id shicaijiage | VARCHAR(255) | | 食材价格 shicaidanwei | VARCHAR(255) | | 食材单位 shicaifenliang | VARCHAR(255) | | 食材分量 shicaizongjia | VARCHAR(255) | | 食材总价
基于web的java食堂管理系统之采购员表
字段名 | 类型 | 属性 | 描述 id | INT(11) | PRIMARY KEY | 采购员id username | VARCHAR(255) | | 账号 password | VARCHAR(255) | | 密码
//定义caipucaipinguanli方法响应页面请求 @RequestMapping(VALUE = "caipucaipinguanli") public String caipucaipinguanli(HttpServletRequest request,HttpSession SESSION, HttpServletResponse response,String backurl) { logger.debug("CaipucaipinController.caipucaipinguanli ......"); CaipucaipinExample example = NEW CaipucaipinExample(); List caipucaipinall = caipucaipindao.selectByExample(example); request.setAttribute("caipucaipinall", caipucaipinall); IF(backurl != NULL && backurl.indexOf("caipucaipinguanli.action") == -1){ RETURN "forward:/" + backurl; } RETURN "caipucaipinguanli"; } // 定义 caipucaipinchakan方法 @RequestMapping(VALUE = "caipucaipinchakan") public String caipucaipinchakan(HttpServletRequest request,HttpSession SESSION, HttpServletResponse response,String backurl) { logger.debug("CaipucaipinController.caipucaipinchakan ......"); CaipucaipinExample example = NEW CaipucaipinExample(); List caipucaipinall = caipucaipindao.selectByExample(example); request.setAttribute("caipucaipinall", caipucaipinall); IF(backurl != NULL && backurl.indexOf("caipucaipinchakan.action") == -1){ RETURN "forward:/" + backurl; } RETURN "caipucaipinchakan"; }
添加菜谱菜品模块:
系统中存在添加菜谱菜品功能,通过点击添加菜谱菜品可以跳转到该功能模块,在该功能模块中,填写对应的菜谱菜品信息。菜谱菜品包含信息菜谱名字,菜谱id,菜品名字,菜品id,菜品价格,人数,菜品总价,填写完所有信息后,通过post方法将数据提交到tianjiacaipucaipin.action中,该地址将在服务器中caipucaipinController类中的tianjiacaipucaipinact方法中进行响应。响应结果为,获取所有的菜谱菜品信息,封装一个caipucaipin类,使用caipucaipinController类中定义的caipucaipindao的insert方法,将菜谱菜品数据插入到数据库的caipucaipin表中。并给出用户提示信息,添加菜谱菜品成功,将该信息保存到request的message中,该信息将在页面中进行展示。该部分核心代码如下:
通过caipucaipindao的insert方法将页面传输的菜谱菜品添加到数据库中 caipucaipindao.insert(caipucaipin);
将添加菜谱菜品成功信息,保存到request的message中,在页面中给出用户提示 request.setAttribute("message", "添加菜谱菜品成功");
返回菜谱菜品管理界面
return "forward:/tianjiacaipucaipin.action";
查询菜谱菜品模块:
在后台caipucaipinguanli方法中,通过selectByexample方法获取所有的数据信息。将其保存到request中,在页面中通过foreach方法
进行循环展示到table中。完成菜谱菜品查询操作。具体代码如下:
生成菜谱菜品样例类,通过example定义查询条件 CaipucaipinExample example = new CaipucaipinExample();
通过caipucaipindao的selectByExample方法查询出所有的菜谱菜品信息 List caipucaipinall = caipucaipindao.selectByExample(example);
将菜谱菜品信息,保存到request中,在页面通过foreach方法进行展示 request.setAttribute("caipucaipinall", caipucaipinall);
返回菜谱菜品管理界面
return "forward:/caipucaipinguanli.action";
修改菜谱菜品模块:
在页面填写完修改信息后,点击修改按钮,将数据提交到xiugaicaipucaipin中,封装为一个菜谱菜品
,使用update方法修改该菜谱菜品信息,将数据同步到数据库,完成修改操作。
定义修改成功提示信息,修改菜谱菜品成功,并保存到request中具体代码如下:
通过caipucaipindao的修改方法根据id修改对应的菜谱菜品 caipucaipindao.updateByPrimaryKeySelective(caipucaipin);
将修改菜谱菜品成功信息,保存到request的message中,在页面中给出用户提示 request.setAttribute("message", "修改菜谱菜品信息成功");
返回菜谱菜品管理界面
return "forward:/caipucaipinguanli.action";
删除菜谱菜品模块:
删除菜谱菜品功能实现在caipucaipinController中,实现方法为shanchucaipucaipin。在页面中通过get方法shanchucaipucaipin.action?Id的形式将需要删除的菜谱菜品id上传到服务器中,响应对应的方法,调用caipucaipindao中的deleteByPrimaryKey方法,完成删除操作。将删除成功的提示信息返回到页面中,完成删除数据的操作。该部分核心代码:
通过caipucaipindao的删除方法根据id删除对应的菜谱菜品 caipucaipindao.deleteByPrimaryKey(id);
将删除菜谱菜品成功信息,保存到request的message中,在页面中给出用户提示 request.setAttribute("message", "删除菜谱菜品成功");
返回菜谱菜品管理界面
return "forward:/caipucaipinguanli.action";