每天都要认真学习,才能更加进步。└(^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";

源码下载

01-17 03:32