每天记录学习,每天会有好心情。*^_^*
今天和一个朋友共同完成了一个合同管理系统项目,我们在开发时选用的框架是SSM(MYECLIPSE)框架。我这个朋友知识有限,只会这个框架,哈哈,都是为了方便他。和往常一样选用简单又便捷的MYECLIPSE作为开发工具,这是一个 后台项目。这个系统的介绍是这样的:该文开发的合同管理系统是典型的管理信息系统(MIS),在此系统中,采用了MVC三层结构,因此该系统的实现主要包括后台数据库的建立和维护、前端应用程序以及中间的应用服务器层的开发三个方面.对于数据库要求建立起数据一致性和完整性强.数据安全性好的库;应用程序则要求具有功能完备,易使用等特点;而中间应用服务器层则应具备可随企业逻辑变化能灵活改变的性能.全面提高了软件的质量与生产率.工程化的思想和面向对象的思想的采用,为该软件的成功和快速的开发提供了指导.合同管理系统是一个办公自动...,一个合同管理系统应包含用户角色有管理员。为了能让用户顺利登陆系统完成相关操作,需要为每种登陆角色设置账户和密码字段。
系统中公司之间存在关联关系,我们将其关联关系保存在合同表中。他们的关联关系是这样的合同的公司与公司的mingzi字段对应、合同的公司id与公司的id字段对应
。
总结得出该系统所有数据为:管理员(admin)、合同(hetong)、公司(gongsi)
管理员表
字段名 | 类型 | 属性 | 描述 id | INT(11) | PRIMARY KEY | 管理员id username | VARCHAR(255) | | 账号 password | VARCHAR(255) | | 密码
合同表
字段名 | 类型 | 属性 | 描述 id | INT(11) | PRIMARY KEY | 合同id mingcheng | VARCHAR(255) | | 名称 shangchuanshijian | VARCHAR(255) | | 上传时间 jieshao | VARCHAR(255) | | 介绍 wenjian | VARCHAR(255) | | 文件 gongsi | VARCHAR(255) | | 公司 gongsiid | VARCHAR(255) | | 公司id
公司表
字段名 | 类型 | 属性 | 描述 id | INT(11) | PRIMARY KEY | 公司id mingzi | VARCHAR(255) | | 名字 jieshao | VARCHAR(255) | | 介绍 dizhi | VARCHAR(255) | | 地址 lianxifangshi | VARCHAR(255) | | 联系方式
SET FOREIGN_KEY_CHECKS=0; -- ---------------------------- -- ---------------------------- -- Table structure for gghetongguanli -- ---------------------------- 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_hetong`; CREATE TABLE `t_hetong` (`id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '合同id',`mingcheng` VARCHAR(255) DEFAULT NULL COMMENT '名称',`shangchuanshijian` VARCHAR(255) DEFAULT NULL COMMENT '上传时间',`jieshao` VARCHAR(5000) DEFAULT NULL COMMENT '介绍',`wenjian` VARCHAR(255) DEFAULT NULL COMMENT '文件',`gongsi` VARCHAR(255) DEFAULT NULL COMMENT '公司',`gongsiid` INT(11) DEFAULT NULL COMMENT '公司id',PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='合同'; -- ---------------------------- DROP TABLE IF EXISTS `t_gongsi`; CREATE TABLE `t_gongsi` (`id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '公司id',`mingzi` VARCHAR(255) DEFAULT NULL COMMENT '名字',`jieshao` VARCHAR(255) DEFAULT NULL COMMENT '介绍',`dizhi` VARCHAR(255) DEFAULT NULL COMMENT '地址',`lianxifangshi` VARCHAR(255) DEFAULT NULL COMMENT '联系方式',PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='公司';
添加合同模块:
系统中存在添加合同功能,通过点击添加合同可以跳转到该功能模块,在该功能模块中,填写对应的合同信息。合同包含信息名称,上传时间,介绍,文件,公司,公司id,填写完所有信息后,通过post方法将数据提交到tianjiahetong.action中,该地址将在服务器中hetongController类中的tianjiahetongact方法中进行响应。响应结果为,获取所有的合同信息,封装一个hetong类,使用hetongController类中定义的hetongdao的insert方法,将合同数据插入到数据库的hetong表中。并给出用户提示信息,添加合同成功,将该信息保存到request的message中,该信息将在页面中进行展示。该部分核心代码如下:
通过hetongdao的insert方法将页面传输的合同添加到数据库中 hetongdao.insert(hetong);
将添加合同成功信息,保存到request的message中,在页面中给出用户提示 request.setAttribute("message", "添加合同成功");
返回合同管理界面
return "forward:/tianjiahetong.action";
查询合同模块:
在后台中定义合同查询模块,在侧边栏中点击合同管理,可以跳转到合同管理界面。在该页面中通过hetongController中定义hetongguanli响应合同查询模块。在hetongguanli中查询出所有信息,返回页面进行循环展示。查询方法为hetongdao中的selectByexample方法。该部分核心代码如下:
生成合同样例类,通过example定义查询条件 HetongExample example = new HetongExample();
通过hetongdao的selectByExample方法查询出所有的合同信息 List hetongall = hetongdao.selectByExample(example);
将合同信息,保存到request中,在页面通过foreach方法进行展示 request.setAttribute("hetongall", hetongall);
返回合同管理界面
return "forward:/hetongguanli.action";
修改合同模块:
对已经上传的合同信息可以进行修改操作,该部分操作在合同管理界面中点击修改按钮可以跳转到合同修改页面。在修改页面中,将初始化所有的合同字段信息,字段信息包括名称,上传时间,介绍,文件,公司,公司id。字段信息内容通过合同id获取。修改后的信息传入到hetongController中接收为hetong。在hetongController中包含有提前定义好的hetongdao,该参数为hetongMapper是实现。hetongMapper中定义了修改方法,此处使用修改方法为updateByPrimaryKeySelective,该方法可以将修改后信息同步到数据库中,最终将修改成功信息返回页面中。该部分代码如下:
通过hetongdao的修改方法根据id修改对应的合同 hetongdao.updateByPrimaryKeySelective(hetong);
将修改合同成功信息,保存到request的message中,在页面中给出用户提示 request.setAttribute("message", "修改合同信息成功");
返回合同管理界面
return "forward:/hetongguanli.action";
删除合同模块:
在管理页面中,点击删除。页面将通过a标签的href属性,使用get方法将该合同
的id上传到服务器中,在服务器中通过hetongController类中的shanchuhetong进行接收,之后调用hetongMapper中的deleteByPrimaryKey方法根据ID进行删除。将删除信息保存到request的message中,在页面给出用户删除成功的提示信息,该部分核心代码如下:
通过hetongdao的删除方法根据id删除对应的合同 hetongdao.deleteByPrimaryKey(id);
将删除合同成功信息,保存到request的message中,在页面中给出用户提示 request.setAttribute("message", "删除合同成功");
返回合同管理界面
return "forward:/hetongguanli.action";