SSM职员信息查询管理平台

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

今日思考,完成一个基于SSM框架下的职员信息查询管理平台项目,需要实现哪些功能?
此类项目常见描述如下:
本文主要从企业员工信息管理系统的设计思路、企业员工信息管理系统的实现方式以及J2EE开发平台的优越性三个方面展开了具体的分析,对我国企业员工的信息管理系统进行了深入的探讨。采用当前非常流行的B/S体系结构,以JSP作为开发技术,主要依赖SSM技术框架,mysql数据库建立本系统。
SSM(MYECLIPSE)框架及其适合基于SSM框架下的职员信息查询管理平台,使用MVC的思想可以极大程度减少重复工作量。和SSM(MYECLIPSE)框架最配的开发工具是MYECLIPSE。MYECLIPSE集成了大量插件,可以更好的使用SSM(MYECLIPSE)进行项目的开发,使得项目开发时事半功倍。
通过对基于SSM框架下的职员信息查询管理平台系统的仔细分析,可以得出基于SSM框架下的职员信息查询管理平台系统是一个 后台项目。
在这样一个项目中,系统的登录角色是必不可少的,对每个登录角色设置账号、密码。以确保系统可以正常登录使用。SSM(MYECLIPSE)项目中包含的登录角色有管理员。

总结得出基于SSM框架下的职员信息查询管理平台项目所有数据为:管理员(admin)、信息录入(xinxiluru)、培训经历(peixunjingli)、调动经历(diaodongjingli)、请假记录(qingjiajilu)

基于SSM框架下的职员信息查询管理平台之管理员表

字段名 | 类型 | 属性 | 描述
id | INT(11) | PRIMARY KEY | 管理员id
username | VARCHAR(255) | | 账号
password | VARCHAR(255) | | 密码

基于SSM框架下的职员信息查询管理平台之信息录入表

字段名 | 类型 | 属性 | 描述
id | INT(11) | PRIMARY KEY | 信息录入id
xingming | VARCHAR(255) | | 姓名
nianling | VARCHAR(255) | | 年龄
xingbie | VARCHAR(255) | | 性别
zhiwu | VARCHAR(255) | | 职务

基于SSM框架下的职员信息查询管理平台之培训经历表

字段名 | 类型 | 属性 | 描述
id | INT(11) | PRIMARY KEY | 培训经历id
peixunshijian | VARCHAR(255) | | 培训时间
peixunzhuanye | VARCHAR(255) | | 培训专业
xingming | VARCHAR(255) | | 姓名

基于SSM框架下的职员信息查询管理平台之调动经历表

字段名 | 类型 | 属性 | 描述
id | INT(11) | PRIMARY KEY | 调动经历id
yuanbumen | VARCHAR(255) | | 原部门
diaodongbumen | VARCHAR(255) | | 调动部门
diaodongshijian | VARCHAR(255) | | 调动时间
xingming | VARCHAR(255) | | 姓名

基于SSM框架下的职员信息查询管理平台之请假记录表

字段名 | 类型 | 属性 | 描述
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.QingjiajiluMapper;

import org.mypro.entity.Qingjiajilu;

import org.mypro.entity.QingjiajiluExample;

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 QingjiajiluController {

private static final Log logger = LogFactory.getLog(QingjiajiluController.class);

@Autowired
private QingjiajiluMapper qingjiajiludao;

//定义方法tianjiaqingjiajilu,响应页面tianjiaqingjiajilu请求

@RequestMapping(VALUE = "tianjiaqingjiajilu")

public String tianjiaqingjiajilu(HttpServletRequest request, HttpServletResponse response,HttpSession SESSION,String backurl) {

logger.debug("QingjiajiluController.tianjiaqingjiajilu ......");

IF(backurl != NULL && backurl.indexOf("tianjiaqingjiajilu.action") == -1){

RETURN "forward:/" + backurl; }

RETURN "tianjiaqingjiajilu";

}

@RequestMapping(VALUE = "tianjiaqingjiajiluact")

public String tianjiaqingjiajiluact(HttpServletRequest request,HttpSession SESSION, HttpServletResponse response,Qingjiajilu qingjiajilu,String backurl) throws IOException {

logger.debug("QingjiajiluController.tianjiaqingjiajiluact ......");

qingjiajiludao.insert(qingjiajilu);

request.setAttribute("message", "添加请假记录成功");

IF(backurl != NULL && backurl.indexOf("tianjiaqingjiajiluact.action") == -1){

RETURN "forward:/" + backurl; }

//返回tianjiaqingjiajilu方法

RETURN "forward:/tianjiaqingjiajilu.action";

}

//定义qingjiajiluguanli方法响应页面请求

@RequestMapping(VALUE = "qingjiajiluguanli")

public String qingjiajiluguanli(HttpServletRequest request,HttpSession SESSION, HttpServletResponse response,String backurl) {

logger.debug("QingjiajiluController.qingjiajiluguanli ......");

QingjiajiluExample example = NEW QingjiajiluExample();

List qingjiajiluall = qingjiajiludao.selectByExample(example);

request.setAttribute("qingjiajiluall", qingjiajiluall);

IF(backurl != NULL && backurl.indexOf("qingjiajiluguanli.action") == -1){

RETURN "forward:/" + backurl; }

RETURN "qingjiajiluguanli";

}

// 定义 qingjiajiluchakan方法

@RequestMapping(VALUE = "qingjiajiluchakan")

public String qingjiajiluchakan(HttpServletRequest request,HttpSession SESSION, HttpServletResponse response,String backurl) {

logger.debug("QingjiajiluController.qingjiajiluchakan ......");

QingjiajiluExample example = NEW QingjiajiluExample();

List qingjiajiluall = qingjiajiludao.selectByExample(example);

request.setAttribute("qingjiajiluall", qingjiajiluall);

IF(backurl != NULL && backurl.indexOf("qingjiajiluchakan.action") == -1){

RETURN "forward:/" + backurl; }

RETURN "qingjiajiluchakan";

}

// 定义 xiugaiqingjiajilu方法

@RequestMapping(VALUE = "xiugaiqingjiajilu")

public String xiugaiqingjiajilu(HttpServletRequest request, HttpServletResponse response,HttpSession SESSION,INT id,String backurl){

logger.debug("QingjiajiluController.xiugaiqingjiajilu ......");

Qingjiajilu qingjiajilu = qingjiajiludao.selectByPrimaryKey(id);

request.setAttribute("qingjiajilu", qingjiajilu);

IF(backurl != NULL && backurl.indexOf("xiugaiqingjiajilu.action") == -1){

RETURN "forward:/" + backurl; }

RETURN "xiugaiqingjiajilu";

}

// 定义xiugaiqingjiajiluact处理请假记录修改

@RequestMapping(VALUE = "xiugaiqingjiajiluact")

public String xiugaiqingjiajiluact(HttpServletRequest request, HttpServletResponse response,Qingjiajilu qingjiajilu,HttpSession SESSION,String backurl) throws IOException {

logger.debug("QingjiajiluController.xiugaiqingjiajiluact ......");

qingjiajiludao.updateByPrimaryKeySelective(qingjiajilu);

request.setAttribute("message", "修改请假记录信息成功");

IF(backurl != NULL && backurl.indexOf("xiugaiqingjiajiluact.action") == -1){

RETURN "forward:/" + backurl; }

RETURN "forward:/qingjiajiluguanli.action";

}

// 定义shanchuqingjiajilu,处理删除请假记录

@RequestMapping(VALUE = "shanchuqingjiajilu")

public String shanchuqingjiajilu(HttpServletRequest request, HttpServletResponse response,HttpSession SESSION,INT id,String backurl){

logger.debug("QingjiajiluController.shanchuqingjiajilu ......");

qingjiajiludao.deleteByPrimaryKey(id);

request.setAttribute("message", "删除请假记录成功");

IF(backurl != NULL && backurl.indexOf("shanchuqingjiajilu.action") == -1){

RETURN "forward:/" + backurl; }

RETURN "forward:/qingjiajiluguanli.action";

}

// 定义sousuoqingjiajilu方法,处理搜索操作

@RequestMapping(VALUE = "sousuoqingjiajilu")

public String sousuoqingjiajilu(HttpServletRequest request, HttpServletResponse response,HttpSession SESSION,String SEARCH,String backurl) {

logger.debug("QingjiajiluController.sousuoqingjiajilu ......");

QingjiajiluExample example = NEW QingjiajiluExample();

QingjiajiluExample.Criteria criteria = example.createCriteria();

IF(SEARCH != NULL){

criteria.andXingmingLike("%" + SEARCH + "%");

}

List qingjiajiluall = qingjiajiludao.selectByExample(example);

request.setAttribute("qingjiajiluall", qingjiajiluall);

IF(backurl != NULL && backurl.indexOf("sousuoqingjiajilu.action") == -1){

RETURN "forward:/" + backurl; }

RETURN "sousuoqingjiajilu";

}

// 定义QingjiajilupinglunMapper

@RequestMapping(VALUE = "qingjiajiluxiangqing")

public String qingjiajiluxiangqing(HttpServletRequest request,HttpSession SESSION, HttpServletResponse response,INT id,String backurl) {

logger.debug("QingjiajiluController.qingjiajiluxiangqing ......");

Qingjiajilu qingjiajilu = qingjiajiludao.selectByPrimaryKey(id);request

.setAttribute("qingjiajilu", qingjiajilu);

IF(backurl != NULL && backurl.indexOf("qingjiajiluxiangqing.action") == -1){

RETURN "forward:/" + backurl; }

RETURN "qingjiajiluxiangqing";

}

// 上传文件图片等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);

// 完整的urlString fileUrl 

= DATE.get(Calendar.YEAR) + "/" + (DATE.get(Calendar.MONTH)+1) + "/" + newFileName;

RETURN fileUrl;

}}

添加调动经历模块:

从页面中通过post方法,将调动经历信息传入到后台服务器中,在tianjiadiaodongjingliact

中接收,字段包括原部门,调动部门,调动时间,姓名使用insert方法添加数据,将数据同步到

数据库中,完成添加操作。定义添加成功提示信息,添加调动经历成功,并保存到request中具体代码如下:

通过diaodongjinglidao的insert方法将页面传输的调动经历添加到数据库中 diaodongjinglidao.insert(diaodongjingli);

将添加调动经历成功信息,保存到request的message中,在页面中给出用户提示 request.setAttribute("message", "添加调动经历成功");

返回调动经历管理界面

return "forward:/tianjiadiaodongjingli.action";

查询调动经历模块:

调动经历的查询模块实现方式为,在页面中发起diaodongjingliguanli.action请求。通过该请求,响应服务器diaodongjingliController类中的diaodongjingliguanli,在该方法中通过selectByexample进行数据的查询操作。将所有的调动经历信息查询后,保存到request中的diaodongjingliall中,在页面中进行展示,返回diaodongjingliguanli.jsp,该部分核心代码如下所示:

生成调动经历样例类,通过example定义查询条件 DiaodongjingliExample example = new DiaodongjingliExample();

通过diaodongjinglidao的selectByExample方法查询出所有的调动经历信息 List diaodongjingliall = diaodongjinglidao.selectByExample(example);

将调动经历信息,保存到request中,在页面通过foreach方法进行展示 request.setAttribute("diaodongjingliall", diaodongjingliall);

返回调动经历管理界面

return "forward:/diaodongjingliguanli.action";

修改调动经历模块:

在页面完成调动经历的修改信息填写后,将该部分数据传入xiugaidiaodongjingli.action地址,并通过post进行提交。提交后在diaodongjingliController中通过xiugaidiaodongjingli进行接收,将所有字段封装为一个调动经历实体。并将该实体传入diaodongjinglidao中的updateByPrimaryKeySelective方法中,在该方法中定义了通过调动经历id更新其余调动经历的字段,该部分字段包括原部门,调动部门,调动时间,姓名,该部分核心代码如下所示:

通过diaodongjinglidao的修改方法根据id修改对应的调动经历 diaodongjinglidao.updateByPrimaryKeySelective(diaodongjingli);

将修改调动经历成功信息,保存到request的message中,在页面中给出用户提示 request.setAttribute("message", "修改调动经历信息成功");

返回调动经历管理界面

return "forward:/diaodongjingliguanli.action";

删除调动经历模块:

删除调动经历功能的实现方式为,通过点击删除调动经历按钮,向服务器发起get请求。请求中包含调动经历的id信息,在diaodongjingliController中使用int接受该id,并将该id传入diaodongjinglidao的deleteByPrimaryKey方法中。该方法的作用为根据id删除对应调动经历。最后将删除调动经历成功的信息返回页面,该部分核心代码如下:

通过diaodongjinglidao的删除方法根据id删除对应的调动经历 diaodongjinglidao.deleteByPrimaryKey(id);

将删除调动经历成功信息,保存到request的message中,在页面中给出用户提示 request.setAttribute("message", "删除调动经历成功");

返回调动经历管理界面

return "forward:/diaodongjingliguanli.action";

猜你喜欢

转载自www.cnblogs.com/rt14/p/11616028.html