# 人事管理系统javaweb **Repository Path**: wu-ting112/wutingjavaweb ## Basic Information - **Project Name**: 人事管理系统javaweb - **Description**: 实训项目 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-06-15 - **Last Updated**: 2023-06-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: javaWEB ## README # 人事管理系统javaweb 2设计 2.1 环境配置及关键技术 运行环境:java jdk 1.8 IDE环境:IDEA2020; Tomcat环境:Tomcat 8.5 硬件环境:windows 110 数据库:MySql 5.7版本; 关键技术: Javaweb+SpringMVC+ MyBatis + html+ css + JavaScript等等 2.2系统功能模块 ![输入图片说明](https://foruda.gitee.com/images/1687261670691868694/26d34c87_12465714.png "屏幕截图") 系统结构图 2.3数据的设计 依据项目的处理需求,对应数据表的设计及功能如下: ·用户表: 主要用于保存用户信息 ·部门表: 主要用于保存员工的部门信息 ·职位表: 主要用于保存内部人员的职位信息 ·员工表: 主要用于保存员工信息 ·文件表: 主要用于保存文件信息 ·分类表: 主要用于保存分类信息 ·公告表: 主要用于保存公告信息 使用navicat实现数据库内容的可视化 ![输入图片说明](out/artifacts/image1.png) ![输入图片说明](.idea/artifacts/image.png) ![输入图片说明](.idea/artifacts/image.png) Java程序通过JDBC驱动程序与数据库相连,执行查询,提取数据等操作 连接数据库的代码实现 //jdbc工具类 public class JDBCUtil{ //定义连接对象,执行sql对象结果集 private static Connection conn; private static PreparedStatement ps; private static ResultSet rs; //驱动url username password private static String driver="com.mysql.jdbc.Driver"; private static String url="jdbc:mysql://localhost:3306/hrm?characterEncoding=UTF-8"; private static String userName="root"; private static String password="123456"; //加载驱动 //static{}静态的代码块类加载的时候就会执行这个代码 static{ //try{}catch{}捕获异常 try{ Class.forName(driver); }catch(ClassNotFoundException e){ e.printStackTrace(); } } //static静态,在类加载的时候就加载static修饰的资源,可以通过类名.属性名类名.方法名 //获取连接对象 public static Connection getConnection(){ try{ //用静态的属性Connection接收获取到的返回值 conn=DriverManager.getConnection(url,userName,password); }catch(SQLException throwables){ throwables.printStackTrace(); } //返回值 return conn; } public static ResultSet query(String sql,Object...obj){ //获取连接 getConnection(); //获取ps try{ ps=conn.prepareStatement(sql); //处理占位符 if(obj!=null){ for(int i=0;i
  • 用户查询
  • 主页面 ![输入图片说明](6.png) ![输入图片说明](image4.png) 用户查询页面 ![输入图片说明](7.png) 用户查询页面内的功能实现 //查询所有的用户 public ListfindUser(User userQuery){ System.out.println("---"); System.out.println(userQuery); //创建list集合 ListuserList=new ArrayList<>(); String sql="SELECT*FROM user_inf"; ResultSet rs=null; if(userQuery.getStatus()!=0){ sql+="where status=?"; if(userQuery.getUserName()!=null&&!"".equals(userQuery.getUserName())){ sql+="and username like?"; rs=JDBCUtil.query(sql,userQuery.getStatus(),"%"+userQuery.getUserName()+"%"); }else{ rs=JDBCUtil.query(sql,userQuery.getStatus()); } }else{//没有状态的查询条件 if(userQuery.getUserName()!=null&&!"".equals(userQuery.getUserName())){ sql+="where username like?"; rs=JDBCUtil.query(sql,"%"+userQuery.getUserName()+"%"); }else{ //没有查询条件 rs=JDBCUtil.query(sql); } } try{ while(rs.next()){ //拿到查询结果 int id=rs.getInt("id"); String loginname=rs.getString("loginname"); String password1=rs.getString("password"); int status=rs.getInt("status"); Date createDate=rs.getDate("createDate"); String username=rs.getString("username"); //创建用户对象 User user=new User(id,loginname,password1,status,createDate,username); //查询到的每个用户保存到userList中 userList.add(user); } }catch(Exception e){ e.printStackTrace(); } //返回集合 return userList; } public User findByLoginName(String loginName){ //jdbc代码 String sql="SELECT*FROM user_inf WHERE loginname=?"; //调用jdbcutil里面的查询方法,返回一个结果集 ResultSet rs=JDBCUtil.query(sql,loginName); try{ while(rs.next()){ //拿到查询结果 int id=rs.getInt("id"); String loginname=rs.getString("loginname"); String password1=rs.getString("password"); int status=rs.getInt("status"); Date createDate=rs.getDate("createDate"); String username=rs.getString("username"); //创建用户对象 User user=new User(id,loginname,password1,status,createDate,username); //返回user对象 return user; } }catch(Exception e){ e.printStackTrace(); } return null; } 用户表 3.3拦截功能 拦截方法 //拦截方法 @Override public void doFilter(ServletRequest servletRequest,ServletResponse servletResponse,FilterChain filterChain)throws IOException,ServletException{ //拿到登录对象 HttpServletRequest request=(HttpServletRequest)servletRequest; HttpSession session=request.getSession(); User loginUser=(User)session.getAttribute("loginUser");//拿到登录对象 //判断是否有登录 if(loginUser!=null){ //有登录就放行 filterChain.doFilter(request,servletResponse);//放行 }else{ //没有登录返回登录页面 request.getRequestDispatcher("jsp/login.html").forward(request,servletResponse); } } 3.4实时时间显示功能 //系统时间实时显示 Date.prototype.format=function(fmt){ var o={ "y+":this.getFullYear,//年 "M+":this.getMonth()+1,//月份 "d+":this.getDate(),//日 "h+":this.getHours(),//小时 "m+":this.getMinutes(),//分 "s+":this.getSeconds()//秒 }; if(/(y+)/.test(fmt)) fmt=fmt.replace(RegExp.$1,(this.getFullYear()+"").substr(4-RegExp.$1.length)); for(var k in o) if(new RegExp("("+k+")").test(fmt)) fmt=fmt.replace(RegExp.$1,(RegExp.$1.length==1)?(o[k]):(("00"+o[k]).substr((""+o[k]).length))); return fmt; } setInterval("document.getElementById('dateTime').innerHTML='当前时间为:'+(new Date()).format('yyyy-MM-dd hh:mm:ss');",1000); 实时时间显示 3.5判断登录名是否存在功能 login(){ let that=this $("#login-btn").click(function(){ //输入校验 if(that.checkInput()){//校验通过 //提交表单 $.ajax({ type:'post',//提交方式post url:$("#myForm").attr("action"), cache:false,//不启用缓存 data:$("#myForm").serialize(), success:function(result){ console.log(result); //提示 if(result==1){//登录成功 bootoast({ message:"登录成功", type:'success', position:'top', timeout:2 }); //访问index页面 window.location.href="index";//index.action }else{ bootoast({ message:"登录失败", type:'danger', position:'top', timeout:2 }); } }, error:function(error){// //提示 bootoast({ message:'服务器请求错误!', type:'danger', position:'top', timeout:2 }); } ![输入图片说明](image5.png) 服务器请求错误 3.6文件上传功能 //文件上传 @MultipartConfig @WebServlet("/upload.action") public class UploadServlet extends HttpServlet{ @Override protected void service(HttpServletRequest req,HttpServletResponse resp)throws ServletException,IOException{ //设置编码 req.setCharacterEncoding("UTF8"); resp.setCharacterEncoding("UTF8"); //拿到文件 Part file=req.getPart("file"); //得到文件名 System.out.println("文件名:"+file.getSubmittedFileName()); //生成唯一id String id=IdUtil.simpleUUID(); String fileName=id+file.getSubmittedFileName(); System.out.println("最终文件名:"+fileName); //文件上传到D:\人事管理系统\file file.write("D:\\人事管理系统\\file\\"+fileName); //返回数据返回文件名 JSONObject jsonObject=new JSONObject(); jsonObject.putOpt("url",fileName); resp.getWriter().write(jsonObject.toString()); } } 3.7添加文件功能 //添加 String title=req.getParameter("title"); String filename=req.getParameter("filename"); String content=req.getParameter("content"); User loginUser=(User)req.getSession().getAttribute("loginUser"); Document document=new Document(); document.setFilename(filename); document.setTitle(title); document.setRemark(content); document.setCreateDate(new Date()); document.setUserId(loginUser.getId()); try{ documentService.addDocument(document); resp.getWriter().write("1"); }catch(Exception e){ resp.getWriter().write("0"); e.printStackTrace(); 3.8文件下载功能 ![输入图片说明](image9.png) //文件下载 @WebServlet("/download.action") public class DownloadServlet extends HttpServlet{ @Override protected void service(HttpServletRequest req,HttpServletResponse resp)throws ServletException,IOException{ String path="D:\\人事管理系统\\file\\"; String fileName=req.getParameter("filename"); //通过路径得到file对象 File file=new File(path+fileName); //判断文件对象是否存在并且是否为标准文件 if(file.exists()&&file.isFile()){ //设置响应类型(浏览器无法使用某种方式或激活某个程序来处理的MIME类型) resp.setContentType("application/octet-stream"); //设置响应头信息resp.setHeader("Content-Disposition","attachment;filename="+fileName); //得到file文件的输入流 InputStream in=new FileInputStream(file); //得到字节输出流 ServletOutputStream out=resp.getOutputStream(); //定义byte数组 byte[]bytes=new byte[1024]; //定义长度 int len=0; //循环输出 while((len=in.read(bytes))!=-1){ //输出 out.write(bytes,0,len); } //关闭资源 out.close(); in.close(); }else{ resp.getWriter().write("文件不存在,请重试!"); resp.getWriter().close(); } 文件下载 3.9显示数据库中的相应表 getCheckData:function(){//获取选中数据 var checkStatus=table.checkStatus('dept') ,data=checkStatus.data if(data==""){ layer.msg('至少也得选择一个',{icon:2}); return; } var ids=' if(data.length>0){ for(var i=0;i0){ for(var i=0;i