每天记录学习,每天会有好心情。*^_^*
今天和一个朋友共同完成了一个基于WEB的产品管理系统项目,我们在开发时选用的框架是SSM(MYECLIPSE)框架。我这个朋友知识有限,只会这个框架,哈哈,都是为了方便他。和往常一样选用简单又便捷的MYECLIPSE作为开发工具,这是一个 后台项目。这个系统的介绍是这样的:针对企业产品管理过程中存在的查询效率低、维护困难等问题,设计了一种基于Web的产品数据管理系统。首先对开发平台进行了分析,提出了一种新的基于Web的产品数据管理系统框架,并对系统实现过程中涉及到的部分关键技术进行了论述。应用结果表明,该系统能够有效地提高产品数据的管理效率。,一个基于WEB的产品管理系统应包含用户角色有管理员、产品经理。为了能让用户顺利登陆系统完成相关操作,需要为每种登陆角色设置账户和密码字段。
在系统的功能中,产品是一个重要的表。这个表使得产品经理关联了起来。在产品表中产品的负责人与产品经理的mingzi字段对应、产品的负责人id与产品经理的id字段对应
,他们拥有关联关系。系统中产品、产品问题之间具有较强的联系性。他们之间的关系为产品问题的产品与产品的mingzi字段对应、产品问题的产品idc与产品的id字段对应
。在产品问题表中可以体现出这种关系。
总结得出该系统所有数据为:管理员(admin)、产品(chanpin)、产品经理(chanpinjinli)、产品问题(chanpingwenti)
管理员表
字段名 | 类型 | 属性 | 描述 id | INT(11) | PRIMARY KEY | 管理员id username | VARCHAR(255) | | 账号 password | VARCHAR(255) | | 密码
产品表
字段名 | 类型 | 属性 | 描述 id | INT(11) | PRIMARY KEY | 产品id mingzi | VARCHAR(255) | | 名字 jieshao | VARCHAR(255) | | 介绍 fuzeren | VARCHAR(255) | | 负责人 fuzerenid | VARCHAR(255) | | 负责人id
产品经理表
字段名 | 类型 | 属性 | 描述 id | INT(11) | PRIMARY KEY | 产品经理id mingzi | VARCHAR(255) | | 名字 username | VARCHAR(255) | | 账号 password | VARCHAR(255) | | 密码 lianxifangshi | VARCHAR(255) | | 联系方式
产品问题表
字段名 | 类型 | 属性 | 描述 id | INT(11) | PRIMARY KEY | 产品问题id chanpin | VARCHAR(255) | | 产品 chanpinid | VARCHAR(255) | | 产品idc wenti | VARCHAR(255) | | 问题 miaoshu | VARCHAR(255) | | 描述 shijian | VARCHAR(255) | | 时间
SET FOREIGN_KEY_CHECKS=0; -- ---------------------------- -- ---------------------------- -- Table structure for ggchanpingguanli -- ---------------------------- DROP TABLE IF EXISTS `t_admin`; CREATE TABLE `t_admin` (`id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '管理员id',`username` VARCHAR(255) DEFAULT NULL COMMENT '账号',`password` VARCHAR(255) DEFAULT NULL COMMENT '密码',PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='管理员'; -- ---------------------------- DROP TABLE IF EXISTS `t_chanpin`; CREATE TABLE `t_chanpin` (`id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '产品id',`mingzi` VARCHAR(255) DEFAULT NULL COMMENT '名字',`jieshao` VARCHAR(5000) DEFAULT NULL COMMENT '介绍',`fuzeren` VARCHAR(255) DEFAULT NULL COMMENT '负责人',`fuzerenid` INT(11) DEFAULT NULL COMMENT '负责人id',PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='产品'; -- ---------------------------- DROP TABLE IF EXISTS `t_chanpinjinli`; CREATE TABLE `t_chanpinjinli` (`id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '产品经理id',`mingzi` VARCHAR(255) DEFAULT NULL COMMENT '名字',`username` VARCHAR(255) DEFAULT NULL COMMENT '账号',`password` VARCHAR(255) DEFAULT NULL COMMENT '密码',`lianxifangshi` VARCHAR(255) DEFAULT NULL COMMENT '联系方式',PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='产品经理'; -- ---------------------------- DROP TABLE IF EXISTS `t_chanpingwenti`; CREATE TABLE `t_chanpingwenti` (`id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '产品问题id',`chanpin` VARCHAR(255) DEFAULT NULL COMMENT '产品',`chanpinid` INT(11) DEFAULT NULL COMMENT '产品idc',`wenti` VARCHAR(255) DEFAULT NULL COMMENT '问题',`miaoshu` VARCHAR(5000) DEFAULT NULL COMMENT '描述',`shijian` VARCHAR(255) DEFAULT NULL COMMENT '时间',PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='产品问题';
添加产品问题模块:
系统中存在添加产品问题功能,通过点击添加产品问题可以跳转到该功能模块,在该功能模块中,填写对应的产品问题信息。产品问题包含信息产品,产品idc,问题,描述,时间,填写完所有信息后,通过post方法将数据提交到tianjiachanpingwenti.action中,该地址将在服务器中chanpingwentiController类中的tianjiachanpingwentiact方法中进行响应。响应结果为,获取所有的产品问题信息,封装一个chanpingwenti类,使用chanpingwentiController类中定义的chanpingwentidao的insert方法,将产品问题数据插入到数据库的chanpingwenti表中。并给出用户提示信息,添加产品问题成功,将该信息保存到request的message中,该信息将在页面中进行展示。该部分核心代码如下:
通过chanpingwentidao的insert方法将页面传输的产品问题添加到数据库中 chanpingwentidao.insert(chanpingwenti);
将添加产品问题成功信息,保存到request的message中,在页面中给出用户提示 request.setAttribute("message", "添加产品问题成功");
返回产品问题管理界面
return "forward:/tianjiachanpingwenti.action";
查询产品问题模块:
产品问题的查询模块实现方式为,在页面中发起chanpingwentiguanli.action请求。通过该请求,响应服务器chanpingwentiController类中的chanpingwentiguanli,在该方法中通过selectByexample进行数据的查询操作。将所有的产品问题信息查询后,保存到request中的chanpingwentiall中,在页面中进行展示,返回chanpingwentiguanli.jsp,该部分核心代码如下所示:
生成产品问题样例类,通过example定义查询条件 ChanpingwentiExample example = new ChanpingwentiExample();
通过chanpingwentidao的selectByExample方法查询出所有的产品问题信息 List chanpingwentiall = chanpingwentidao.selectByExample(example);
将产品问题信息,保存到request中,在页面通过foreach方法进行展示 request.setAttribute("chanpingwentiall", chanpingwentiall);
返回产品问题管理界面
return "forward:/chanpingwentiguanli.action";
修改产品问题模块:
点击修改按钮,可以跳转到产品问题修改页面。在产品问题修改页面中,将初始化该产品问题的所有信息,并将信息一一对应填充到对应编辑栏中。编辑完产品问题信息后,页面通过post方法将数据封装为一个产品问题实体,传入到chanpingwentiController中。在xiugaichanpingwenti中进行接收,接收完毕后,调用chanpingwentiMapper中的updateByPrimaryKeySelective方法进行修改。该部分代码如下:
通过chanpingwentidao的修改方法根据id修改对应的产品问题 chanpingwentidao.updateByPrimaryKeySelective(chanpingwenti);
将修改产品问题成功信息,保存到request的message中,在页面中给出用户提示 request.setAttribute("message", "修改产品问题信息成功");
返回产品问题管理界面
return "forward:/chanpingwentiguanli.action";
删除产品问题模块:
在管理页面中,点击删除。页面将通过a标签的href属性,使用get方法将该产品问题
的id上传到服务器中,在服务器中通过chanpingwentiController类中的shanchuchanpingwenti进行接收,之后调用chanpingwentiMapper中的deleteByPrimaryKey方法根据ID进行删除。将删除信息保存到request的message中,在页面给出用户删除成功的提示信息,该部分核心代码如下:
通过chanpingwentidao的删除方法根据id删除对应的产品问题 chanpingwentidao.deleteByPrimaryKey(id);
将删除产品问题成功信息,保存到request的message中,在页面中给出用户提示 request.setAttribute("message", "删除产品问题成功");
返回产品问题管理界面
return "forward:/chanpingwentiguanli.action";