每天记录学习,每天会有好心情。*^_^*

最近了解了基于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";

01-24 06:32