ImageVerifierCode 换一换
格式:DOCX , 页数:41 ,大小:1.88MB ,
资源ID:9171474      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-9171474.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于MVC模式的人事工资管理系统.docx)为本站会员(b****8)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

基于MVC模式的人事工资管理系统.docx

1、基于MVC模式的人事工资管理系统第1章 概 述1.1 系统目的和意义本次课程设计的题目是“基于MVC模式的人事工资系统的设计与实现,该设计是对于本学期所学的JSP程序设计课程的稳固和深入探索,同时结合Java语言、JSP技术进展Web程序设计,利用前面学过的知识来解决实际问题,提高解决问题的能力和动手编程的能力。同时该系统使用目前企业实际开发中比较成熟的MVC模式进展系统的整体架构设计,有效别离模块、功能之间的代码耦合关系,并逐步理解软件开发步骤和软件工程思想1。1.2 系统开发环境1本系统采用Browser/Server体系构造。2系统开发环境1)开发平台:MyEclipse5.5.1 GA

2、2)开发语言:JSP、Java3)数据库:Microsoft SQLServer20053系统运行环境客户端:浏览器:桔子浏览器效劳器端:数据库:Microsoft SQLServer2005应用程序系统1.3 系统开发模式及根本功能本系统是基于MVC模式设计和开发的,MVC模式是一种使用 MVCModel View Controller 模型-视图-控制器设计创立 Web 应用程序的模式。Model模型表示应用程序核心,是应用程序中用于处理应用程序数据逻辑的局部。通常模型对象负责在数据库中存取数据;View视图是应用程序中处理数据显示的局部。通常视图是依据模型数据创立的;Controller

3、控制器处理输入,是应用程序中处理用户交互的局部。通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据。基于MVC模式的人事工资系统主要实现前台和后台两局部功能设计,其中前台主要实现员工查看个人根本信息、员工查看本月工资信息、系统评价和修改密码等功能。在查看个人根本信息当中,员工可以查看账号、XX号、XX、性别、入公司时间、学历、毕业院校、专业、所属部门名称、职位、联系方式、备注等根本个人信息;在查看本月工资信息当中,员工可以查看底薪、奖金、养老保险、失业险、医疗保险、住房公积金、个人所得税、罚金等工资信息。后台主要实现员工信息管理、工资信息管理、请假信息管理、系统评价等功能。其中员工信

4、息管理包括添加员工信息和浏览、修改、删除员工信息;工资信息管理包括添加员工奖金信息和浏览工资信息;请假信息管理包括添加请假信息和浏览、修改、删除请假信息。第2章系统设计2.1系统的模块划分人事工资系统是一种通常由管理员管理、用于记录和更新员工个人根本信息和工资情况的。员工的个人信息由管理员录入,根本工资按照国家统一计算方法计算,奖金以及罚金由管理员另外录入。参照一般的人事工资系统,为本系统设计了以下几个功能模块:1用户登录模块用户登录前根据用户类型分别进展登录验证,如果账号和密码正确,并且验证码无误那么进入系统。2员工信息管理模块管理员可以对员工信息进展添加、浏览、修改和删除等操作,3工资信息

5、管理模块管理员可以添加员工的奖金,同时浏览员工本月工资,4请假信息管理模块管理员可以添加员工请假信息,同时录入罚金数额。5友情模块用户通过点击可以进入到相关浏览信息。6前台浏览模块普通员工可以个人信息进展浏览以及个人本月工资情况。系统功能模块图如图2-1所示。人事工资系统员工信息管理工资信息管理请假信息管理友情前台浏览用户登录图2-1系统功能模块图2.2数据库设计数据库管理系统是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库,它对数据库进展统一的管理和控制,以保证数据库的平安性和完整性。用户通过DBMS数据库中的数据,数据库管理员也通过DBMS进展数据库的维护工作。它可使多个应用程

6、序和用户用不同的方法在同时或不同时刻去建立,修改和询问数据库。数据库的设计是整个系统成败的一个重要环节。合理的数据库设计能够给系统带来很高的效率。而且能够使得各个功能模块的设计变得非常简单而且模块间的关系特别明确,从而提高系统的可维护性。本系统的数据库是在SQL Server2005中创立的。根据前面的分析,人事工资系统数据库共包含6个表,包括管理员信息表tbAdmin、员工信息tbEmployee、职位工资信息表tbSalary、员工详细工资信息表tbSalaryDetail、请假信息表tbRest和系统评估信息表tbEvaluation。表的构造、表字段的数据类型及相关说明如下:表1管理员

7、信息表列名说明数据类型约束id管理员账号varchar(20)主键psw管理员密码varchar(20)非空表2 员工信息表列名说明数据类型约束id员工账号varchar(20)主键psw员工密码varchar(20)非空idNumberXX号varchar(18)非空nameXXvarchar(10)非空sex性别varchar(2)非空inDate入公司时间datetimedegree文化程度varchar(6)college毕业院校varchar(20)major专业varchar(20)deptName所属部门名称varchar(10)posId职位编号varchar(20)非空tel

8、联系方式varchar(15)note备注varchar(300)表3 岗位工资表列名说明数据类型约束posId岗位编号varchar(20)主键posName岗位名称varchar(20)非空basePay根本工资decimal(10,4)非空edmRate养老金标准decimal(10,4)uepRate失业险标准decimal(10,4)healthRate医疗险标准decimal(10,4)phfRate公积金标准decimal(10,4)表4 员工工资详细信息表列名说明数据类型约束id员工账号varchar(20)主键monthTime月份datetime(10,4)非空basepa

9、y根本工资decimal(10,4)非空bonus奖金decimal(10,4)edmInsur养老保险decimal(10,4)uepInsur失业险decimal(10,4)healthInsur医疗保险decimal(10,4)phf住房公积金decimal(10,4)ineTax个人所得税decimal(10,4)fine罚金decimal(10,4)表5 请假信息表列名说明数据类型约束id员工账号varchar(20)主键restDate请假日期datetime非空fine罚款decimal(10,4)非空note备注varchar(300)num序号int主键,自动编号以上就是人事

10、工资系统所需的数据表,按照这些表构造设计,在Microsoft SQLServer2005中创立数据库EmployeeDatabase,并创立相应的表。第3章系统的详细设计及实现3.1数据库底层类本系统的设计使用基于Servlet的MVC架构模式,将系统的各个功能的实现过程严格的划分为视图View、控制Controller、模型Model,其中View负责界面的显示,Controller负责请求的转发和响应,Model负责逻辑业务对象实体和业务实体。由于本系统是一种信息管理系统,在这三层之下,还要建立数据库层,该层完成数据库的连接、SQL语句的具体执行等操作。这一层由MVC模式中的Model层

11、里的业务实体进展调用,从而完成逻辑业务的信息维护操作。3.1.1JDBC数据库技术JDBCJava Data Base Connectivity, java数据库连接是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。有了JDBC,向各种关系数据发送SQL语句就是一件很容易的事。换言之,有了JDBC API,程序员就不必针对不同数据库分别编写程序,而只需用JDBC API写一个程序就够了,它可向相应数据库发送SQL调用。同时,将Java

12、语言和JDBC结合起来使程序员不必为不同的平台编写不同的应用程序,只须写一遍程序就可以让它在任何平台上运行,这也是Java语言“编写一次,处处运行的优势。简单来说,JDBC可做三件事:与数据库建立连接、发送 操作数据库的语句并处理结果。为实现数据库连接,需将事先下载的sqljdbc.jar拷贝到lib目录下。3.1.2添加DBManager公共类首先创立包nepu.syx.tools,在该包下创立名为DBManager的类,该类得职责用于提供、操作数据库的公共方法。添加公共类的方法和步骤如下:在工程中的nepu.syx.tools包上点右键,选择【New】-【Class】菜单项,将弹出【New

13、 Java Class】对话框,保存默认的选择,在Name文本框中输入DBManager,点击Finish按钮。3.1.3编写公共方法3.1.2小节为工程添加了一个DBManager类,该类用于存放连接、操作数据库的公共方法,本小节介绍如何编写这些公共方法。首先为DBManager类声明几个公共变量,其中conn为数据库连接对象,定义形式为:private Connection conn=null;stmt用于向数据库发送要执行的sql语句,定义形式为:private Statement stmt=null;rs为结果集,定义形式为:private ResultSet rs=null;uri为

14、要连接的URL,定义形式为:String uri=jdbc:sqlserver:/localhost:1433;DatabaseName=EmployeeDatabase;user为数据库用户名,定义形式为:String user=sa;psw为数据库登录密码,定义形式为:String psw=111。1、数据库连接方法getConnection()首先利用Class.forName(.microsoft.sqlserver.jdbc.SQLServerDriver);注册驱动程序,之后获取数据库,并进展相应异常处理。getConnection方法的关键代码如下:public Connecti

15、on getConnection() try Class.forName(.microsoft.sqlserver.jdbc.SQLServerDriver); conn=DriverManager.getConnection(uri,user,psw); if(conn=null) System.out.println(数据库连接失败!); catch (ClassNotFoundException e) e.printStackTrace (); System.out.println(驱动加载错误!); catch (SQLException e) e.printStackTrace ()

16、; System.out.print(获取数据库连接错误!); return conn; 2、数据库查询方法executeQuery()用conn创立一个Statement对象,stmt调用executeQuery(sql)方法来进展数据查询,进展相应异常处理,返回类型为ResultSet。executeQuery()方法的关键代码如下:public ResultSet executeQuery(String sql) try stmt=conn.createStatement(); rs=stmt.executeQuery(sql); catch (SQLException e) e.pri

17、ntStackTrace(); System.out.print(执行sql语句错误!); return rs; 3、数据库增删改的操作方法executeUpdate()用conn创立一个Statement对象,stmt调用executeUpdate (sql)方法来进展数据更新,进展相应异常处理,返回更新行数,类型为int。executeUpdate()方法的关键代码如下:public int executeUpdate(String sql) int count=0; try stmt=conn.createStatement(); count=stmt.executeUpdate(sql

18、); catch(SQLException e) e.printStackTrace(); return count; 3.2 登录模块登录是每一个成功工程中不可缺少的模块,好的登录模块可以保证系统的可靠性和平安性。本节首先严格按照MVC架构模式为人事工资系统制作了一个简单的登录模块,根据用户类型不同,进入到不同操作页面,另外本节还详细介绍了主页面的设计。按照MVC模式进展构建登录功能的开发,对该模块的文件构建说明如下1Model层:在nepu.syx.DAO包中添加业务Javabean,类名为UserDAO。2Controller层:在nepu.syx.Servlet中添加类UserServ

19、let,该servlet主要负责参数的接收以及用户相关操作的流程控制,例如,用户登录,修改密码等功能。3View层:在WebRoot文件夹下添加名为index.jsp和image.jsp的JSP文件。3.2.1 View层构建首先在MyEclipse的工程的WebRoot目录下index.jsp页面中编写表单代码,其中注意表单的action属性为该表单信息提交的效劳端URL地址,method属性为提交方式。在这里由于是按照MVC模式,将信息提交给Servlet,因此method必须post。同时为防止复杂的URL的路径逻辑关系,统一使用绝对路径。值得注意的是,验证码图片的src设置为image

20、.jsp,onclick事件设置为this.src=this.src+?+Math.random();页面设计如图3-1所示。图3-1 登录界面设计3.2.2 Model层构建在业务Javabean类UserDAO中建立方法adminLoginCheck()和employeeLoginCheck(),该方法的主要功能是判断用户是否存在,并且密码是否正确,该方法需要接收由servlet传递过来2个参数,一个是用户账号id,另一个是密码psw,调用DBManger数据库底层操作类的executeQuery()方法实现sql查询,如果用户类型是管理员,sql语句如下:String sql = sel

21、ect * from tbAdmin where id=+id+ and psw=+psw+;如果用户类型是员工,sql语句如下:String sql = select * from tbEmployee where id=+id+ and psw=+psw+;执行该sql语句后,将返回一个结果集ResultSet,判断该结果集中的记录的条数,并使用变量count记录,如果count的值大于0,那么表示用户存在,登录成功,返回一个布尔类型的值true,否那么返回false。获取结果集前方法的核心代码如下:ResultSet rs = db.excuteQuery (sql); if(rs.ne

22、xt() return true;return false;3.2.3 Controller层构建在UserServlet添加方法doLogin(),在该方法中完成登录的逻辑判断。首先需要通过方法request.getParameter()来接收由index.jsp页面传递过来的参数id、psw、rand和checkNum,首先判断验证码是否正确,之后调用Model层的业务javaBean UserDAO的登录方法实现登录判定,登录成功后需要注意将账号用session进展存储,这样,在用户屡次请求和响应之后都可以由session中取出用户名展示或判断用户是否登录。最后,在servlet中使用f

23、orward方法跳转到对应用户的首页面。UserServelt中的doLogin()方法关键代码如下:HttpSession session = request.getSession(); String id = request.getParameter(id); String psw = request.getParameter(psw); String userType = request.getParameter(user); String checkNum = request.getParameter(checkNum); String rand = (String)session.g

24、etAttribute(rand); UserDAO uDAO = new UserDAO(); boolean t = false; RequestDispatcher rd =null; try if(checkNum.equals(rand) if(userType.equals(admin) /用户是管理员 t = uDAO.adminLoginCheck(id, psw);/判断管理员信息是否正确 if(t) rd = request.getRequestDispatcher(admin/AdminIndex.jsp); else /用户是员工 t=uDAO.employeeLogi

25、nCheck(id,psw);/判断员工信息是否正确 rd = request.getRequestDispatcher(employee/EmployeeIndex.jsp); session.setAttribute(userType, userType); session.setAttribute(id, id); if(t=false)/用户不存在request.setAttribute( message,用户名或密码不正确!请重新输入!); rd = request.getRequestDispatcher(index.jsp); else request.setAttribute(

26、 message,验证码不正确!请重新输入!); rd = request.getRequestDispatcher(index.jsp); catch (SQLException e) e.printStackTrace(); rd.forward(request, response); 3.3 系统首页面导航人事工资的界面设计采用左侧导航构造,如图3-2所示,系统内几乎所有的jsp页面都具有大致类似的页面构造和风格,例如,一样的页面头部、左侧导航和页脚,因此,为了编码的方便和提高代码的可重用性,系统设计了一些公用的页面文件,主要包括AdminTop.jsp、AdminLeft.jsp、Ad

27、minEnd.jsp,其他的页面如后台管理的首页面AdminIndex.jsp那么直接通过include指令标记将AdminEnd.jsp、AdminTop.jsp、AdminLeft.jsp包含到自身页面的相应位置即可,这样,编码工作将主要集中在左侧导航AdminLeft.jsp页面。其他新增的功能页面的设计思路类似,在此不再赘述。AdminIndex.jsp界面的浏览效果如图3-2所示:图3-2 后台管理首页面浏览效果3.4 员工信息管理本节首先严格按照MVC架构模式为人事工资系统制作了一个简单的员工信息管理模块,该模块包括添加员工信息和浏览/修改/删除员工信息两个局部,根据管理员的不同选

28、择,可以进入不同操作页面。按照MVC模式进展构建登录功能的开发,对该模块的文件构建说明如下:1Model层:在nepu.syx.model包中添加文章类别的实体Javabean,类名为EmployeeModel和SalaryModel。在nepu.jsp.dao包中添加业务Javabean,类名为EmployeeDAO和SalaryDAO。其中EmployeeModel类包含12个属性,分别是账号、XX号、XX、性别、入公司时间、学历、毕业院校、专业、所属部门名称、职位编号、联系方式和备注,同时在该类中添加属性的set、get方法,EmployeeModel类的属性定义局部代码如下:publi

29、c class EmployeeModel String id = ; String idNumber = ; String name = ; String sex = ; String inDate = ; String degree=; String college = ; String major = ; String deptName = ; String posId = ; String tel = ; String note = ;其中SalaryModel类包含12个属性,分别是账号、XX号、XX、月份、根底工资、奖金、养老保险、失业险、医疗保险、住房公积金、个人所得税、罚金和工资总计,同时在该类中添加属性的set、get方法,SalaryModel类的属性定义局部代码如下:public class SalaryModel public String id =; public String name =; public String monthTime =; public double basepay = 0.0; public

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2