每天记录学习,每天会有好心情。*^_^*
最近了解了基于Web的员工信息管理系统项目,在这个平台记录一下这个基于Web的员工信息管理系统项目,方便以后再次使用或学习的时候能够及时的翻阅。在完成基于Web的员工信息管理系统项目的时候,考虑了很多框架。最终决定选用SSM(MYECLIPSE),该框架具有极强的移植性,多平台性,便于操作性等优点。此框架能在MYECLIPSE开发工具中完美的编写和运行,基于Web的员工信息管理系统为一个 后台项目。这个项目的描述是这样的:随着我国科学技术的不断发展,我国的计算机电子信息技术也得到了不断的发展,许多企业都采用了计算机电子信息技术进行企业员工的信息管理,采用当前非常流行的B/S体系结构,以JSP作为开发技术,主要依赖SSM技术框架,mysql数据库建立本系统。
在对基于Web的员工信息管理系统项目进行需求分析的时候,得出系统的登录角色包括了管理员。对应用户可以通过登录自己的账号,进行入系统。系统对不同角色拥有不同权限。
总结得出基于Web的员工信息管理系统项目所有数据为:管理员(admin)、信息录入(xinxiluru)、培训经历(peixunjingli)、调动经历(diaodongjingli)、请假记录(qingjiajilu)
基于Web的员工信息管理系统之管理员表
字段名 | 类型 | 属性 | 描述 id | INT(11) | PRIMARY KEY | 管理员id username | VARCHAR(255) | | 账号 password | VARCHAR(255) | | 密码
基于Web的员工信息管理系统之信息录入表
字段名 | 类型 | 属性 | 描述 id | INT(11) | PRIMARY KEY | 信息录入id xingming | VARCHAR(255) | | 姓名 nianling | VARCHAR(255) | | 年龄 xingbie | VARCHAR(255) | | 性别 zhiwu | VARCHAR(255) | | 职务
基于Web的员工信息管理系统之培训经历表
字段名 | 类型 | 属性 | 描述 id | INT(11) | PRIMARY KEY | 培训经历id peixunshijian | VARCHAR(255) | | 培训时间 peixunzhuanye | VARCHAR(255) | | 培训专业 xingming | VARCHAR(255) | | 姓名
基于Web的员工信息管理系统之调动经历表
字段名 | 类型 | 属性 | 描述 id | INT(11) | PRIMARY KEY | 调动经历id yuanbumen | VARCHAR(255) | | 原部门 diaodongbumen | VARCHAR(255) | | 调动部门 diaodongshijian | VARCHAR(255) | | 调动时间 xingming | VARCHAR(255) | | 姓名
基于Web的员工信息管理系统之请假记录表
字段名 | 类型 | 属性 | 描述 id | INT(11) | PRIMARY KEY | 请假记录id xingming | VARCHAR(255) | | 姓名 qingjiashijian | VARCHAR(255) | | 请假时间
package org.mypro.front; import java.io.File; import java.io.IOException; import java.math.BigDecimal; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.Collections; import java.util.Date; import java.util.List; import javax.jms.Session; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import org.apache.commons.lang3.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.mypro.dao.PeixunjingliMapper; import org.mypro.entity.Peixunjingli; import org.mypro.entity.PeixunjingliExample; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.multipart.MultipartFile; @Controller @RequestMapping(VALUE = "/") public class PeixunjingliController { private static final Log logger = LogFactory.getLog(PeixunjingliController.class); @Autowired private PeixunjingliMapper peixunjinglidao; //定义方法tianjiapeixunjingli,响应页面tianjiapeixunjingli请求 @RequestMapping(VALUE = "tianjiapeixunjingli") public String tianjiapeixunjingli(HttpServletRequest request, HttpServletResponse response,HttpSession SESSION,String backurl) { logger.debug("PeixunjingliController.tianjiapeixunjingli ......"); IF(backurl != NULL && backurl.indexOf("tianjiapeixunjingli.action") == -1){ RETURN "forward:/" + backurl; } RETURN "tianjiapeixunjingli"; //定义peixunjingliguanli方法响应页面请求 @RequestMapping(VALUE = "peixunjingliguanli") public String peixunjingliguanli(HttpServletRequest request,HttpSession SESSION, HttpServletResponse response,String backurl) { logger.debug("PeixunjingliController.peixunjingliguanli ......"); PeixunjingliExample example = NEW PeixunjingliExample(); List peixunjingliall = peixunjinglidao.selectByExample(example); request.setAttribute("peixunjingliall", peixunjingliall); IF(backurl != NULL && backurl.indexOf("peixunjingliguanli.action") == -1){ RETURN "forward:/" + backurl; } RETURN "peixunjingliguanli"; } // 定义 peixunjinglichakan方法 @RequestMapping(VALUE = "peixunjinglichakan") public String peixunjinglichakan(HttpServletRequest request,HttpSession SESSION, HttpServletResponse response,String backurl) { logger.debug("PeixunjingliController.peixunjinglichakan ......"); PeixunjingliExample example = NEW PeixunjingliExample(); List peixunjingliall = peixunjinglidao.selectByExample(example); request.setAttribute("peixunjingliall", peixunjingliall); IF(backurl != NULL && backurl.indexOf("peixunjinglichakan.action") == -1){ RETURN "forward:/" + backurl; } RETURN "peixunjinglichakan"; } // 上传文件图片等 public String uploadUtile(MultipartFile file, HttpServletRequest request) throws IOException { // 根据当前时间生成时间字符串 SimpleDateFormat sdf = NEW SimpleDateFormat("yyyyMMddHHmmssSS"); String res = sdf.format(NEW DATE()); // uploads文件夹位置 String rootPath = request.getSession().getServletContext().getRealPath("resource/uploads/"); // 原始名称 String originalFileName = file.getOriginalFilename(); // 新文件名 String newFileName = "sliver" + res + originalFileName.substring(originalFileName.lastIndexOf(".")); // 创建年月文件夹 Calendar DATE = Calendar.getInstance(); File dateDirs = NEW File(DATE.get(Calendar.YEAR) + File.separator + (DATE.get(Calendar.MONTH)+1)); // 新文件 File newFile = NEW File(rootPath + File.separator + dateDirs + File.separator + newFileName); // 判断目标文件所在目录是否存在 IF( !newFile.getParentFile().exists()) { // 如果目标文件所在的目录不存在,则创建父目录 newFile.getParentFile().mkdirs(); } System.out.println(newFile); // 将内存中的数据写入磁盘 file.transferTo(newFile); // 完整的url String fileUrl = DATE.get(Calendar.YEAR) + "/" + (DATE.get(Calendar.MONTH)+1) + "/" + newFileName; RETURN fileUrl; }}
添加培训经历模块:
通过添加培训经历模块,可以完成培训经历的添加操作。在页面中跳转到添加培训经历页面,输入培训经历的所有信息,点击添加操作,可以将培训经历数据以post提交到peixunjingliController中。培训经历所包含的字段信息包括培训时间,培训专业,姓名。在peixunjingliController中通过定义peixunjingli接受所有的培训经历参数。使用peixunjinglidao的insert方法将peixunjingli实体插入到数据库中。完成数据的添加操作,在peixunjingliMapper中匹配对应的peixunjinglixml完成插入sql语句的执行操作。该部分核心代码如下:
通过peixunjinglidao的insert方法将页面传输的培训经历添加到数据库中 peixunjinglidao.insert(peixunjingli);
将添加培训经历成功信息,保存到request的message中,在页面中给出用户提示 request.setAttribute("message", "添加培训经历成功");
返回培训经历管理界面
return "forward:/tianjiapeixunjingli.action";
查询培训经历模块:
在后台中定义培训经历查询模块,在侧边栏中点击培训经历管理,可以跳转到培训经历管理界面。在该页面中通过peixunjingliController中定义peixunjingliguanli响应培训经历查询模块。在peixunjingliguanli中查询出所有信息,返回页面进行循环展示。查询方法为peixunjinglidao中的selectByexample方法。该部分核心代码如下:
生成培训经历样例类,通过example定义查询条件 PeixunjingliExample example = new PeixunjingliExample();
通过peixunjinglidao的selectByExample方法查询出所有的培训经历信息 List peixunjingliall = peixunjinglidao.selectByExample(example);
将培训经历信息,保存到request中,在页面通过foreach方法进行展示 request.setAttribute("peixunjingliall", peixunjingliall);
返回培训经历管理界面
return "forward:/peixunjingliguanli.action";
修改培训经历模块:
在页面填写完修改信息后,点击修改按钮,将数据提交到xiugaipeixunjingli中,封装为一个培训经历
,使用update方法修改该培训经历信息,将数据同步到数据库,完成修改操作。
定义修改成功提示信息,修改培训经历成功,并保存到request中具体代码如下:
通过peixunjinglidao的修改方法根据id修改对应的培训经历 peixunjinglidao.updateByPrimaryKeySelective(peixunjingli);
将修改培训经历成功信息,保存到request的message中,在页面中给出用户提示 request.setAttribute("message", "修改培训经历信息成功");
返回培训经历管理界面
return "forward:/peixunjingliguanli.action";
删除培训经历模块:
在管理页面中,点击删除。页面将通过a标签的href属性,使用get方法将该培训经历
的id上传到服务器中,在服务器中通过peixunjingliController类中的shanchupeixunjingli进行接收,之后调用peixunjingliMapper中的deleteByPrimaryKey方法根据ID进行删除。将删除信息保存到request的message中,在页面给出用户删除成功的提示信息,该部分核心代码如下:
通过peixunjinglidao的删除方法根据id删除对应的培训经历 peixunjinglidao.deleteByPrimaryKey(id);
将删除培训经历成功信息,保存到request的message中,在页面中给出用户提示 request.setAttribute("message", "删除培训经历成功");
返回培训经历管理界面
return "forward:/peixunjingliguanli.action";