今天接了一个职工管理系统,大学生的期末作业。总的而来说实现功能比较简单,围绕增删查改进行。当然最后还有实验报告要写。

功能如下:

存储职工编号,职工姓名,日期,每次打卡时间(一天可多次打卡,第一次为上班时间、最后一次为下班时间)等信息。

考勤信息的增加、删除、修改和查询(如按月统计打卡次数,某人在指定日期的考勤记录等)。

所采用的的技术:jquery+easyui+servlet+mysql5.0

由于放上所有代码过于冗余,仅介绍核心。

登录界面:(网上搜的模板)

职工考勤的增删查改以及查询功能。

jsp:

employee.jsp(职工考勤页面)

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta charset="UTF-8">
<title>职工考勤管理</title>
<link rel="stylesheet" type="text/css"href="easyui/themes/default/easyui.css">
<link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/easyui/themes/icon.css">
<link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/easyui/css/demo.css">
<script type="text/javascript" src="easyui/jquery.min.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath}/easyui/jquery.easyui.min.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath}/easyui/js/validateExtends.js"></script>
<script type="text/javascript">$(function() {//datagrid初始化var indexFlag=-1;//用于单选时判断是否控制复选框的勾选状态$('#dataList').datagrid({title : '考勤列表',iconCls : 'icon-more',//图标border : true,collapsible : false,//是否可折叠的fit : true,//自动大小method : "post",url : "EmployeeServlet?method=EmployeeList&t="+ new Date().getTime(),idField : 'id',singleSelect : true,//是否单选pagination : true,//分页控件rownumbers : true,//行号sortName : 'id',sortOrder : 'DESC',fitColumns : true,remoteSort : false,onCheck:function(index,row){//第一次选中该行,让他的index赋值给indexFlag,第二层选中该行就把对勾取消if(indexFlag==index){$("#dataList").datagrid('uncheckRow',index);//执行方法,取消该行indexFlag=-1;}else{indexFlag=index;}},columns: [[  {field:'chk',checkbox: true,width:50},{field:'id',title:'职工号',width:50, sortable: true},    {field:'name',title:'姓名',width:50, sortable: true},    {field:'time',title:'日期',width:150},{field:'first_clock',title:'第一次打卡',width:150},{field:'end_clock',title:'最后一次打卡',width:150},]], toolbar : "#toolbar",onBeforeLoad : function() {}});//设置分页控件var p = $('#dataList').datagrid('getPager');$(p).pagination({pageSize : 10,//每页显示的记录条数,默认为10pageList : [10, 20, 30, 40, 50 ],//可以设置每页记录条数的列表beforePageText : '第',//页数文本框前显示的汉字afterPageText : '页    共 {pages} 页',displayMsg : '当前显示 {from} - {to} 条记录   共 {total} 条记录',});//设置工具类按钮$("#add").click(function() {$("#addDialog").dialog("open");});//修改$("#edit").click(function() {var selectRow = $("#dataList").datagrid("getSelected");//必须选中某一行才能进行修改//console.log(selectRow);if(selectRow == null){$.messager.alert("消息提醒", "请选择数据进行修改!", "warning");return;}$("#editDialog_").dialog("open");//修改窗口打开});//删除$("#delete").click(function(){var selectRow = $("#dataList").datagrid("getSelected");if(selectRow == null){$.messager.alert("消息提醒", "请选择数据进行删除!", "warning");} else{var empid = selectRow.id;$.messager.confirm("消息提醒", "将删除员工信息,确认继续?", function(r){if(r){$.ajax({type: "post",url: "EmployeeServlet?method=Deleteemp",data: {empid: empid},success: function(msg){if(msg == "success"){$.messager.alert("消息提醒","删除成功!","info");//刷新表格$("#dataList").datagrid("reload");} else{$.messager.alert("消息提醒","删除失败!","warning");return;}}});}});}});//下拉框通用属性$("#add_department, #edit_department").combobox({width : "200",height : "30",valueField : "id",textField : "name",multiple : false, //可多选editable : false, //不可编辑method : "post",});$("#add_department").combobox({url : "DepartmentServlet?method=getDepartmentlist&t="+ new Date().getTime() + "&from=combox",onLoadSuccess : function() {//默认选择第一条数据var data = $(this).combobox("getData");$(this).combobox("setValue", data[0].id);}});$("#edit_department").combobox({url : "DepartmentServlet?method=getDepartmentlist&t="+ new Date().getTime() + "&from=combox",onLoadSuccess : function() {//默认选择第一条数据var data = $(this).combobox("getData");$(this).combobox("setValue", data[0].id);}});//设置添加员工窗口$("#addDialog").dialog({title: "添加员工记录",width: 650,height: 460,iconCls: "icon-add",modal: true,collapsible: false,minimizable: false,maximizable: false,draggable: true,closed: true,buttons: [{text:'添加',plain: true,iconCls:'icon-user_add',handler:function(){var validate = $("#addForm").form("validate");if(!validate){$.messager.alert("消息提醒","请检查你输入的数据!","warning");return;} else{$.ajax({type: "post",url: "EmployeeServlet?method=AddEmployee",data: $("#addForm").serialize(),success: function(msg){if(msg == "success"){$.messager.alert("消息提醒","添加成功!","info");//关闭窗口$("#addDialog").dialog("close");//清空原表格数据$("#add_name").textbox('setValue', "");$("#add_time").datebox('setValue',"");$("#add_first_clock").textbox('setValue', "");$("#add_end_clock").textbox('setValue', "");$('#dataList').datagrid("reload");} else{$.messager.alert("消息提醒","添加失败!","warning");return;}}});}}},{text:'重置',plain: true,iconCls:'icon-reload',handler:function(){//清空表单$("#add_name").textbox('setValue', "");$("#add_time").datebox('setValue',"");$("#add_first_clock").textbox('setValue', "");$("#add_end_clock").textbox('setValue', "");}},],});//设置编辑员工窗口$("#editDialog_").dialog({title: "修改员工信息",width: 650,height: 460,iconCls: "icon-edit",modal: true,collapsible: false,minimizable: false,maximizable: false,draggable: true,closed: true,buttons: [{text:'提交',plain: true,iconCls:'icon-user_add',handler:function(){var validate = $("#editForm").form("validate");if(!validate){$.messager.alert("消息提醒","请检查你输入的数据!","warning");return;} else{$.ajax({type: "post",url: "EmployeeServlet?method=Editemp&t="+new Date().getTime(),data: $("#editForm").serialize(),success: function(msg){if(msg == "success"){$.messager.alert("消息提醒","更新成功!","info");//关闭窗口$("#editDialog_").dialog("close");//刷新表格$("#dataList").datagrid("reload");} else{$.messager.alert("消息提醒","更新失败!","warning");return;}}});}}},{text:'重置',plain: true,iconCls:'icon-reload',handler:function(){//清空表单$("#edit_name").textbox('setValue', "");$("#edit_time").datebox('setValue',"");$("#edit_first_clock").textbox('setValue', "");$("#edit_end_clock").textbox('setValue', "");}}],onBeforeOpen: function(){var selectRow = $("#dataList").datagrid("getSelected");//console.log(selectRow);//设置值$("#edit_name").textbox('setValue',selectRow.name );$("#edit_time").datebox('setValue',selectRow.time);$("#edit_first_clock").textbox('setValue', selectRow.first_clock);$("#edit_end_clock").textbox('setValue', selectRow.end_clock);$("#edit-id").val(selectRow.id);}});//搜索按钮监听事件$("#search-btn").click(function() {$('#dataList').datagrid('load',{emp_name : $('#search_emp_name').val(),search_time:$("#search_time").datebox('getValue')});$('#search_emp_name').textbox('setValue','');});});
</script>
<script type="text/javascript">function myformatter(date){var y = date.getFullYear();var m = date.getMonth()+1;var d = date.getDate();return y+'-'+(m<10?('0'+m):m)+'-'+(d<10?('0'+d):d);}function myparser(s){if (!s) return new Date();var ss = (s.split('-'));var y = parseInt(ss[0],10);var m = parseInt(ss[1],10);var d = parseInt(ss[2],10);if (!isNaN(y) && !isNaN(m) && !isNaN(d)){return new Date(y,m-1,d);} else {return new Date();}}</script>
</head>
<body><!-- 薪资列表 --><table id="dataList" cellspacing="0" cellpadding="0"></table><!-- 工具框 --><div id="toolbar"><div style="float: left;"><a id="add" href="javascript:;" class="easyui-linkbutton"data-options="iconCls:'icon-add',plain:true">添加</a></div><div style="float: left;" class="datagrid-btn-separator"></div><div style="float: left;"><a id="edit" href="javascript:;" class="easyui-linkbutton"data-options="iconCls:'icon-edit',plain:true">修改</a></div><div style="float: left;" class="datagrid-btn-separator"></div><div style="float: left;"><a id="delete" href="javascript:;" class="easyui-linkbutton"data-options="iconCls:'icon-some-delete',plain:true">删除</a></div><div style="float: left;" class="datagrid-btn-separator"></div><div style="float: left; margin: 3px 5px 0 5px;">姓名:<input id="search_emp_name" class="easyui-textbox"name="search_emp_name" /></div><div style="float: left;" class="datagrid-btn-separator"></div><div style="margin: 3px 5px 0 5px;">日期:<input id="search_time" data-options="formatter:myformatter,parser:myparser" class="easyui-datebox" name="search_time" /><a id="search-btn" href="javascript:;" class="easyui-linkbutton" data-options="iconCls:'icon-search',plain:true">搜索</a></div></div><!-- 添加员工窗口 --><div id="addDialog" style="padding: 10px"><form id="addForm" method="post"><table cellpadding="8"><tr><td>姓名:</td><td><input id="add_name" style="width: 200px; height: 30px;"class="easyui-textbox" type="text" name="add_name"data-options="required:true, missingMessage:'请填写姓名'" /></td></tr><tr><td>日期:</td><td><input id="add_time" data-options="formatter:myformatter,parser:myparser" class="easyui-datebox" name="add_time" /></td></tr><tr><td>第一次打卡:</td><td><input id="add_first_clock"style="width: 200px; height: 30px;" class="easyui-textbox"name="add_first_clock" /></td></tr><tr><td>最后一次打卡:</td><td><input id="add_end_clock"style="width: 200px; height: 30px;" class="easyui-textbox"name="add_end_clock" /></td></tr></table></form></div><!-- 修改员工窗口 --><div id="editDialog_" style="padding: 10px"><form id="editForm" method="post"><input type="hidden" name="edit-id" id=edit-id><table cellpadding="8"><tr><td>姓名:</td><td><input id="edit_name" style="width: 200px; height: 30px;"class="easyui-textbox" type="text" name="edit_name"data-options="required:true, missingMessage:'请填写姓名'" /></td></tr><tr><td>日期:</td><td><input id="edit_time" data-options="formatter:myformatter,parser:myparser" class="easyui-datebox" name="edit_time" /></td></tr><tr><td>第一次打卡:</td><td><input id="edit_first_clock"style="width: 200px; height: 30px;" class="easyui-textbox"name="edit_first_clock" /></td></tr><tr><td>最后一次打卡:</td><td><input id="edit_end_clock"style="width: 200px; height: 30px;" class="easyui-textbox"name="edit_end_clock" /></td></tr></table></form></div><!-- 提交表单处理iframe框架 --><iframe id="photo_target" name="photo_target"></iframe>
</body>
</html>

login.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html><head><meta charset="utf-8"><link rel="stylesheet" href="${pageContext.request.contextPath}/css/style.css" /><link rel="stylesheet" href="${pageContext.request.contextPath}/css/iconfont.css" /><title>职工考勤管理程序</title><link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/easyui/themes/default/easyui.css"><link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/easyui/themes/icon.css"><script type="text/javascript" src="${pageContext.request.contextPath}/easyui/jquery.min.js"></script><script type="text/javascript" src="${pageContext.request.contextPath}/easyui/jquery.easyui.min.js"></script>
<script type="text/javascript">$(function(){//登录$("#submitBtn").click(function(){ //获取表单中的字符串并格式化var data = $("#form").serialize();$.ajax({type: "post",url: "${pageContext.request.contextPath}/LoginServlet?method=Login",data: data, dataType: "text", //返回数据类型//成功返回的信息success: function(msg){if("loginError"== msg){//返回的信息$.messager.alert("消息提醒", "用户名或密码错误!", "warning");} else if("loginSuccess" == msg){//跳转到SystemServletwindow.location.href = "${pageContext.request.contextPath}/SystemServletemp?method=toAdminView";}else{alter(msg)}}});});})
</script>
</head><body><div id="bigBox"><h1>职工考勤管理程序</h1><div class="inputBox"><form  id="form"><div class="inputText"><span class="iconfont icon-nickname"></span><input type="text" placeholder="Username" name="user"/></div><div class="inputText"><span class="iconfont icon-visible"></span><input type="password" placeholder="Password" name="pwd" /></div></form></div><input id="submitBtn" class="loginButton" type="button" value="Login" /></div></body>
</html>

Servlet:

EmployeeServlet(完成后台的增删查改)

package com.item.test.Servlet;import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import com.alibaba.fastjson.JSONObject;
import com.item.test.dao.Employeesdao;
import com.item.test.model.Employee;
import com.item.test.model.Page;/*** Servlet implementation class EmployeeServlet*/
@WebServlet("/EmployeeServlet")
public class EmployeeServlet extends HttpServlet {private static final long serialVersionUID = 1L;/***/protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {String method=request.getParameter("method");if("toListemployee".equals(method)) {Listemployee(request,response);}else if("AddEmployee".equals(method)) {AddEmployee(request,response);}else if("EmployeeList".equals(method)) {EmployeeList(request,response);}else if("Deleteemp".equals(method)) {Deleteemp(request,response);}else if("Editemp".equals(method)) {Editemp(request,response);}}private void Editemp(HttpServletRequest request, HttpServletResponse response) {// TODO Auto-generated method stubtry {request.setCharacterEncoding("UTF-8");} catch (UnsupportedEncodingException e) {// TODO Auto-generated catch blocke.printStackTrace();}int id=Integer.parseInt(request.getParameter("edit-id"));String name = request.getParameter("edit_name");String edit_time=request.getParameter("edit_time");String edit_first_clock=request.getParameter("edit_first_clock");String edit_end_clock=request.getParameter("edit_end_clock");Date edit_times=null;try {edit_times=new SimpleDateFormat("yyyy-MM-dd").parse(edit_time);} catch (ParseException e) {e.printStackTrace();}Employee emp=new Employee();emp.setId(id);emp.setName(name);emp.setTime(edit_times);emp.setFirst_clock(edit_first_clock);emp.setEnd_clock(edit_end_clock);Employeesdao dao=new Employeesdao();if(dao.editemp(emp)) {try {response.getWriter().print("success");} catch (IOException e) {e.printStackTrace();}}else {try {response.getWriter().print("error");} catch (IOException e) {e.printStackTrace();}}}private void Deleteemp(HttpServletRequest request, HttpServletResponse response) {// TODO Auto-generated method stubint id=Integer.parseInt(request.getParameter("empid"));Employeesdao dao=new Employeesdao();if(dao.deleteemp(id)) {try {response.getWriter().print("success");} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}else {try {response.getWriter().print("error");} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}private void EmployeeList(HttpServletRequest request, HttpServletResponse response) {// TODO Auto-generated method stubtry {request.setCharacterEncoding("UTF-8");} catch (UnsupportedEncodingException e1) {// TODO Auto-generated catch blocke1.printStackTrace();}String name=request.getParameter("emp_name");String serach_time=request.getParameter("search_time");Integer currentPage = request.getParameter("page") == null ? 1 : Integer.parseInt(request.getParameter("page"));Integer pageSize = request.getParameter("rows") == null ? 999 : Integer.parseInt(request.getParameter("rows"));Employee emp=new Employee();emp.setName(name);Employeesdao dao=new Employeesdao();List<Employee>list=dao.getEmploteelist(emp,new Page(currentPage, pageSize),serach_time);
//      for(Employee emps:list) {
//          System.out.println(emps);
//      }//System.out.println(JSONObject.toJSONString(list));response.setCharacterEncoding("UTF-8");int total = dao.getEmplist(emp);Map<String, Object> ret = new HashMap<String, Object>();ret.put("total", total);ret.put("rows", list);String from = request.getParameter("from");if("combox".equals(from)){try {response.getWriter().write(JSONObject.toJSONString(list));} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}else{try {response.getWriter().write(JSONObject.toJSONString(ret));} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}private void AddEmployee(HttpServletRequest request, HttpServletResponse response) {// TODO Auto-generated method stubString name = request.getParameter("add_name");String add_time=request.getParameter("add_time");String add_first_clock=request.getParameter("add_first_clock");String add_end_clock=request.getParameter("add_end_clock");//System.out.println(name+" "+add_time+" "+add_first_clock+" "+add_end_clock);Date add_times=null;try {add_times=new SimpleDateFormat("yyyy-MM-dd").parse(add_time);} catch (ParseException e) {// TODO Auto-generated catch blocke.printStackTrace();}Employee emp=new Employee();emp.setName(name);emp.setTime(add_times);emp.setFirst_clock(add_first_clock);emp.setEnd_clock(add_end_clock);Employeesdao dao=new Employeesdao();if(dao.addemployee(emp)) {try {response.getWriter().print("success");} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}else {try {response.getWriter().print("error");} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}//System.out.println(name+" "+add_times+" "+add_first_clock+" "+add_end_clock);}private void Listemployee(HttpServletRequest request, HttpServletResponse response) {// TODO Auto-generated method stubtry {request.getRequestDispatcher("/view/employee.jsp").forward(request, response);} catch (ServletException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}/*** @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)*/protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// TODO Auto-generated method stubdoGet(request, response);}}

LoginServlet(验证登录)

package com.item.test.Servlet;import java.io.IOException;
import java.sql.SQLException;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;import com.item.test.dao.Userdao;
import com.item.test.model.Userlogin;/***/
@WebServlet("/LoginServlet")
public class LoginServlet extends HttpServlet {private static final long serialVersionUID = 1L;/***/protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {request.setCharacterEncoding("UTF-8");//获取携带的参数中有LoginOut,则退出String method=request.getParameter("method");//进行退出操作if(method.equals("LoginOut")) {LoginOut(request,response);return ;}String loginStatus = "loginError";String user=request.getParameter("user");String pwd = request.getParameter("pwd");Userlogin login=new Userlogin();login.setUser(user);login.setPwd(pwd);Userdao dao=new Userdao();try {Userlogin login_res=dao.login(login);if(login_res==null) {response.getWriter().print(loginStatus);return ;}HttpSession session=request.getSession();session.setAttribute("user",login_res);loginStatus="loginSuccess";response.getWriter().print(loginStatus);} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}private void LoginOut(HttpServletRequest request, HttpServletResponse response) throws IOException {// TODO Auto-generated method stub//删除存放在session中的用户信息,并转发到登录界面request.getSession().removeAttribute("user");response.sendRedirect("view/login.jsp");}/***/protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// TODO Auto-generated method stubdoGet(request, response);}}

SystemServletemp(系统管理)

package com.item.test.Servlet;import java.io.IOException;
import java.sql.SQLException;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import com.item.test.dao.Userdao;
import com.item.test.model.Userlogin;/*** Servlet implementation class SystemServlet*/
@WebServlet("/SystemServletemp")
public class SystemServlet extends HttpServlet {private static final long serialVersionUID = 1L;/*** @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)*/protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {String method = request.getParameter("method");if ("toPersonalView".equals(method)) {personalView(request, response);return;} else if ("EditPasswod".equals(method)) {try {editPassword(request, response);} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}return;}request.getRequestDispatcher("view/system.jsp").forward(request, response);}/***/protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// TODO Auto-generated method stubdoGet(request, response);}private void personalView(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {// TODO Auto-generated method stubrequest.getRequestDispatcher("view/personalView.jsp").forward(request, response);}private void editPassword(HttpServletRequest request, HttpServletResponse response) throws IOException, SQLException {// TODO Auto-generated method stubString password = request.getParameter("password");String newPassword = request.getParameter("newpassword");response.setCharacterEncoding("UTF-8");Userlogin user=(Userlogin) request.getSession().getAttribute("user");if(!user.getPwd().equals(password)) {response.getWriter().write("原密码错误!");return ;}Userdao dao=new Userdao();if(dao.editPassword(user, newPassword)) {response.getWriter().print("success");}else {response.getWriter().print("数据库修改错误");}}}

实体类:

Employee(职工考勤信息,由于使用dbutiles保持和表中的字段一致)

package com.item.test.model;import java.util.Date;import com.alibaba.fastjson.annotation.JSONField;public class Employee {private int id;private String name;@JSONField(format="yyyy-MM-dd")private Date time;private String first_clock;private String end_clock;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public Date getTime() {return time;}public void setTime(Date time) {this.time = time;}public String getFirst_clock() {return first_clock;}public void setFirst_clock(String first_clock) {this.first_clock = first_clock;}/*** @return*/public String getEnd_clock() {return end_clock;}@Overridepublic String toString() {return "Employee [id=" + id + ", name=" + name + ", time=" + time + ", first_clock=" + first_clock+ ", end_clock=" + end_clock + "]";}public void setEnd_clock(String end_clock) {this.end_clock = end_clock;}}

Page(前端分页)

package com.item.test.model;public class Page {private int start;//起始页private int currentPage;//当前页private int pageSize;//每页显示数量public Page(int currentpage,int pageSize) {this.start=(currentpage-1)*pageSize;//根据拿到的当前页和每页显示的数量,去mysql中进行查找//start表示起始查询位置。this.currentPage=currentpage;this.pageSize=pageSize;}public int getStart() {return start;}public void setStart(int start) {this.start = start;}public int getCurrentPage() {return currentPage;}public void setCurrentPage(int currentPage) {this.currentPage = currentPage;}public int getPageSize() {return pageSize;}public void setPageSize(int pageSize) {this.pageSize = pageSize;}}

Userlogin(用户登录实体)

package com.item.test.model;public class Userlogin {private int id;private String user;private String pwd;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getUser() {return user;}public void setUser(String user) {this.user = user;}public String getPwd() {return pwd;}public void setPwd(String pwd) {this.pwd = pwd;}
}

dao层

Employeesdao(职工的增删查改)

package com.item.test.dao;import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanListHandler;
import org.apache.commons.dbutils.handlers.ScalarHandler;import com.item.test.model.Employee;
import com.item.test.model.Page;
import com.item.test.utiles.C3P0Utiles;
import com.item.test.utiles.StringUtiles;public class Employeesdao {QueryRunner queryRunner=new QueryRunner(C3P0Utiles.getDataSource());//添加员工信息public boolean addemployee(Employee emp) {String sql="insert into employees values(null,?,?,?,?)";int cnt=-1;try {cnt=queryRunner.update(sql,emp.getName(),emp.getTime(),emp.getFirst_clock(),emp.getEnd_clock());} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}return cnt>0?true:false;}//查询到所有员工信息并以list集合返回public  List<Employee> getEmploteelist(Employee emp, Page page,String search_time) {List<Employee> ret = new ArrayList<Employee>();String sql = "select * from employees ";if(!StringUtiles.isEmpty(emp.getName())){sql += "and name like '%" + emp.getName() +"%' ";}if(search_time!=null&&!search_time.equals("")) {sql+=" and time like'%"+search_time+"%'";}sql += " limit " + page.getStart() + "," + page.getPageSize();try {ret=queryRunner.query(sql.replaceFirst("and", "where"), new BeanListHandler<Employee>(Employee.class));} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}return ret;}//获取员工的总数public int getEmplist(Employee emp) {String sql = "select count(*)as total from employees ";if(!StringUtiles.isEmpty(emp.getName())){sql += "and name like '%" + emp.getName() + "%'";}Long total=(long)-1;try {total = queryRunner.query(sql.replaceFirst("and", "where"), new ScalarHandler<Long>());} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}return total.intValue();}//删除员工信息public boolean deleteemp(int id) {String sql="delete from employees where id=?";int cnt=-1;try {cnt = queryRunner.update(sql,id);} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}return cnt>0?true:false;}//编辑员工信息public boolean editemp(Employee emp) {// TODO Auto-generated method stubString sql = "update employees set name = ?,time=?,first_clock=?,end_clock=? where id=?";int cnt=-1;try {cnt = queryRunner.update(sql,emp.getName(),emp.getTime(),emp.getFirst_clock(),emp.getEnd_clock(),emp.getId());} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}return cnt>0?true:false;}
}

Userdao(用户的查询以及修改密码)

package com.item.test.dao;import java.sql.SQLException;import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanHandler;
import org.apache.commons.dbutils.handlers.BeanListHandler;import com.item.test.model.Userlogin;
import com.item.test.utiles.C3P0Utiles;public class Userdao {public Userlogin login(Userlogin user) throws SQLException{//查询登录用户,并返回该登录用户String sql="select * from login where user=? and pwd=?";QueryRunner queryRunner=new QueryRunner(C3P0Utiles.getDataSource());Userlogin res=(Userlogin) queryRunner.query(sql, new BeanHandler<>(Userlogin.class),user.getUser(),user.getPwd());return res;  }public boolean editPassword(Userlogin user, String pwd) throws SQLException {//更新密码String sql = "update login set pwd = '"+pwd+"' where id = " +"'"+user.getId()+"'";QueryRunner queryRunner=new QueryRunner(C3P0Utiles.getDataSource());int cnt=queryRunner.update(sql);return cnt>0?true:false;}
}

过滤器(防止非法用户进入)

Loginfilter

package com.item.test.filter;import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;/*** 拦截用户未登录状态下的操作*/
@WebFilter(filterName="/Loginfilter",value="/SystemServletemp")
public class Loginfilter implements Filter {/*** Default constructor. */public Loginfilter() {// TODO Auto-generated constructor stub}/***/public void destroy() {// TODO Auto-generated method stub}/*** @see Filter#doFilter(ServletRequest, ServletResponse, FilterChain)*/public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {HttpServletRequest req = (HttpServletRequest)request;HttpServletResponse rep = (HttpServletResponse)response;Object user = req.getSession().getAttribute("user");//验证userif(user==null) {rep.sendRedirect("index.jsp");return ;}else {chain.doFilter(request, response);}}/*** @see Filter#init(FilterConfig)*/public void init(FilterConfig fConfig) throws ServletException {// TODO Auto-generated method stub}}

utiles(工具类)

C3P0Utiles(获取数据库的连接)

package com.item.test.utiles;import javax.sql.DataSource;import com.mchange.v2.c3p0.ComboPooledDataSource;public class C3P0Utiles {private static ComboPooledDataSource dataSource=new ComboPooledDataSource();public static DataSource getDataSource() {return dataSource;}
}

StringUtiles(字符串检查)

package com.item.test.utiles;public class StringUtiles {public static boolean isEmpty(String str) {if(str == null || "".equals(str))return true;return false;}
}

数据库:用C3p0进行连接。

总结:返回到前端的是json格式,有一点问题就是职工实体类和数据库中的表都是Date类型,放到页面上的格式不太好,最后用了在实体类中time类型上使用注解@JSONField(format=“yyyy-MM-dd”)格式化一下即可。用的jar包fastjson。同时查询某个日期是模糊查询,可以查询某年或某月或某日或指定日期的考勤记录。

java web简单的职工管理系统相关推荐

  1. java web简单的网上名片管理系统

    java web简单的网上名片管理系统 实现名片的增删查改以及回收站中信息的还原与彻底删除 1.登录注册页面 <%@ page language="java" content ...

  2. 简单的职工管理系统(java开发)

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.需要的环境和包 二.编写步骤 1.excle文件操作类 2.排序算法 3.主函数 三.执行结果 1.原始文件与初始 ...

  3. java图片管理系统_基于Java Web技术的图片管理系统的设计与实现.doc

    基于Java Web技术的图片管理系统 的设计与实现 本科毕业设计 目 录 第1章 引言6 1.1 课题研究目的及意义6 1.2 课题研究的内容7 2.1 用户功能需求7 图片收藏数据库查询系统图片收 ...

  4. 基于Java的简单零食商城管理系统

    标题# 基于Java的简单零食商城管理系统 专业团队开发,接受定制 联系VX:Alfalfa-cx 专属源码网站欢迎浏览:http://www.eqicode.com/Code/Index.html ...

  5. 用java实现简单的银行管理系统

    用java实现简单的银行管理系统 页面代码之一: mvc设计模式,分包 分包图片 简单效果演示: 登陆主页面 注册页面 登录: 功能页面! 存款 转账 查看近期流水账单! 页面代码之一: packag ...

  6. 基于java的人力资源管理系统_基于Java Web的企业人力资源管理系统的设计与实现(样例3)...

    <基于Java Web的企业人力资源管理系统的设计与实现.doc>由会员分享,可免费在线阅读全文,更多与<基于Java Web的企业人力资源管理系统的设计与实现>相关文档资源请 ...

  7. springMVC+mysql实现的Java web医院分诊挂号管理系统源码附带论文及视频指导运行教程

    今天给大家演示的是一款由springMVC+mysql实现的Java web医院分诊挂号管理系统,主要实现了患者管理.科室管理.挂号管理等业务功能,此外系统还有角色权限管理,用户管理.菜单管理.定时任 ...

  8. 基于java web servlet生鲜商城管理系统源码含报告文档

    (一)目的 电子商务的迅速兴起,网上购物也为人们的生活提供了极大的便利,不受时间和空间的限制.商城系统的兴起,扩大了消费市场的空间,对于大型企业来说,建设商城系统是正确的选择,不仅要扩大销售渠道,而且 ...

  9. 学生信息管理系统java的总结,基于Java web的学生信息管理系统

    源码编号:B-E00012  点击查看分类规则 项目类型:Java EE项目(java web项目) 项目名称:基于java web的学生信息管理系统(StudentManagerWeb) 当前版本: ...

最新文章

  1. 2016-2017-2软件工程课程总结
  2. python实现Shapiro-Wilk正态分布检验
  3. 开源后5个月,Google的深度学习都有哪些改变?
  4. 【特征】机器学习之特征优选
  5. eclipse tomcat jsp乱码
  6. java memcmp_memcmp,memicmp函数
  7. Keras-10 模型可视化
  8. 坑了腾讯1624万!3人冒充老干妈员工诈骗腾讯 判决结果来了...
  9. 【Vue3.0】—V- model‘ directives require no argument.
  10. 用Keil-MDK开发TQ2440裸机程序入门教程
  11. 顺通鞋业鞋厂仓库库存管理系统软件
  12. Mac电脑 如何在任意目录快速打开终端并定位到当前目录
  13. Windows 7下旋转屏幕的快捷键
  14. echarts的全国和全球经纬度数据
  15. 亚马逊的人工智能Alexa竟然独自大笑 笑声很吓人(附视频)
  16. NPM js 包管理器介绍
  17. “七段数码管绘制”实例详解
  18. 成果分享:边缘智能视频预取和缓存机制
  19. GPU与CPU性能比较
  20. 基于NB-IoT的智慧路灯监控系统(NB-IoT专栏—实战篇3:云端部署及AI模型训练)

热门文章

  1. 时序图,程序员的保命技能
  2. Properties介绍与使用
  3. 开源轻量级数据库访问框架
  4. 轻松访问Chrome中您喜欢的Google服务
  5. 【安全漏洞】水平权限漏洞和垂直权限漏洞
  6. 查看电脑软件安装路径
  7. 【Matlab作业】MATLAB数据可视化
  8. Linux下rtl8188eus+hostapd移植成功
  9. 浅拷贝和深拷贝的基本含义和应用场景
  10. 远程连接 VirtualBox 虚拟机