版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PAGE人事管理系统作者姓名指导教师所学专业班级所属院系学习年限年月至年月二○年月PAGE目录论文总页数:44页1引言 11.1课题背景 11.2本课题研究的意义 11.3本课题的研究思路和方法 11.4本文的主要工作 12开发工具介绍 22.1JSP技术 22.1.1JAVA简介 22.1.2JSP简介 22.1.3JavaBeans介绍 32.1.4JDBC驱动程序介绍 32.2Myeclipse介绍 42.3SQLServer2005数据库 42.4Browser/Server(B/S)结构 53需求分析及设计方案 53.1需求分析 53.2设计方案 53.2.1系统功能 53.2.2系统结构 64具体设计流程及实现 64.1数据库设计 64.1.1数据库需求分析及E-R图 64.1.2数据表具体设计 74.1.3数据字典 104.2部分关键编码实施实现 124.2.1工资管理编码实现 124.2.2业绩管理编码实现 264.2.3时间设置编码实现 325系统运行及测试与分析 385.1系统的运行 385.1.1用户登录 385.1.2主界面 385.1.3部门管理 395.1.4用户管理 395.1.5工资管理 405.1.6用户查询 405.1.7考勤录入 415.1.8考勤查询 415.1.9业绩管理 415.1.10业绩对比 425.2测试与分析 42结论 42参考文献 43致谢 44摘要本设计的开发是基于B/S结构,采用JSP程序设计语言及SQLServer2005数据库进行开发;论文首先阐述了基于B/S模式的浙江江森自控有限公司人事管理系统的开发,并对该系统进行了较详细的需求分析;然后探讨了该系统需要实现的设计方案,该系统主要包括部门管理,工资管理,用户管理,用户查询,帮助设置,考勤录入,考勤查询,培训管理,招聘管理等功能模块;最后,在测试与分析过程中,该系统表现出了运行稳定、可靠和实用等特性,具有一定的实用价值。关键词:人事系统;工资管理;考勤;数据库;JSPAbstractThedevelopmentofthisdesignisbasedonB/Sstructure,usingJSPprogramminglanguageandSQLServer2005databasedevelopment;thesisdescribesthedevelopmentoftheinsurancecompanypersonnelsystembasedonB/Smode,andthesysteminmoredetailneedsanalysis;thendiscussestheneedtoimplementthesystemdesign,thesystemincludingdepartmentmanagement,payrollmanagement,usermanagement,userqueries,timesetting,attendanceentry,attendanceinquiries,leavemanagement,performancemanagement,performancecomparisonfunctionmodule;Finally,intheprocessoftestingandanalysis,thesystemshowedastable,reliableandpracticalfeatures,hassomepracticalvalue..Keywords:Personnelsystem;wages;attendance;database;JSP目录1引言 21.1课题背景 21.2本课题研究的意义 21.3本课题的研究思路和方法 21.4本文的主要工作 22开发工具介绍 42.1JSP技术 42.1.1JAVA简介 42.1.2JSP简介 42.1.3JavaBeans介绍 52.1.4JDBC驱动程序介绍 52.2Myeclipse介绍 62.3SQLServer2005数据库 62.4Browser/Server(B/S)结构 63需求分析及设计方案 83.1需求分析 83.2设计方案 83.2.1系统功能 83.2.2系统结构 84具体设计流程及实现 104.1数据库设计 104.1.1数据库需求分析及E-R图 104.1.2数据表具体设计 104.1.3数据字典 134.2部分关键编码实施实现 154.2.1工资管理编码实现 154.2.2业绩管理编码实现 294.2.3时间设置编码实现 355系统运行及测试与分析 415.1系统的运行 415.1.1用户登录 415.1.2主界面 415.1.3部门管理 425.1.4用户管理 425.1.5工资管理 425.1.6考勤录入 435.1.7考勤查询 435.2测试与分析 43结论 45参考文献 46致谢 47第36页共44页1引言1.1课题背景我国的计算机应用于企业管理,只是在70年代末期以后才逐渐开展起来的。目前,计算机辅助管理已在我国的各行各业得到了广泛地应用,但总的来说,计算机在我国管理中的应用,还处于初级阶段,尽管近两年发展较快,但还需要不断地探索和研究。尤其是计算机辅助人事管理仅是近几年才在我国得到普及和发展,而在许多发达国家计算机辅助人事管理已十分普及,因此对这方面的研究是必要的,它将推动我国企业的发展和人事管理信息处理的现代化。1.2本课题研究的意义随着计算机的日益普及和网络的发展,数据库的应用范围越来越广,数据库应用的功能也越来越强,因此编写管理信息系统应用程序也显得尤为重要,在强调管理,强调信息的现代社会中它变得越来越普及。人事管理是任何企事业单位都需要进行的一项工作,因此,开发制作人事管理系统具有较大的社会现实意义,同时人事管理系统是一切应用系统的典范,它具有一切应用系统的特征,系统结构与现实生活紧密结合,具体直观,具有典范的数据库系统的特性。人事管理系统主要用于企业内部员工的档案、工资、考勤、评价的管理,便于公司领导掌握人员的动向,及时调整人才的分配,同时也减少了手工操作带来的一些繁琐与不便,使员工情况的记录和统计变得十分简单.这些优点可以极大的提高企业对人事管理的效率.因此,人事管理系统是企事业信息化、智能化、科学化和正规化不可缺少的管理软件。1.3本课题的研究思路和方法本系统的开发要求采用B/S结构,设计与开发一个功能较完善的基于网络的社区医疗管理系统。因此,本次毕业设计应首先分析社区医疗管理系统的相关功能,结合本次毕业设计的相关要求写出需求分析;其次,综合运用以前所学的相关知识(包括以前所学的一些关于网络技术、数据库、编程技术等相关知识),选择所熟悉的开发工具进行本毕业设计的开发;在设计中以需求分析为基础,写出系统开发计划、实现流程及相关问题的实现方法;同时,在开发设计与实现中,要保存好相关的设计文挡,为后面的毕业论文的写作准备材料;最后,系统开发完毕后,进行调试和试运行,做好调试和试运行的相关记录,也为后面的毕业论文的写作准备材料。1.4本文的主要工作本文主要是对设计与开发一个浙江江森自控有限公司人事管理系统的总结,首先对本系统所基于的B/S结构,采用的JSP编程技术和SQLServer2005数据库,运用的MyEclipse开发工具等进行详细的介绍;然后对用户的需求分析,指出了需要解决的问题,需要实现的功能,如部门管理,工资管理,用户管理,用户查询,帮助设置,考勤录入,考勤查询,培训管理,招聘管理等功能模块;其次是具体设计流程及实现,详细介绍了数据库的设计,编码的实施;接着是系统测试,通过测试发现了系统的一些问题,排除了的错误,发现了一些不足等;最后是对本次设计制作的小结,总结了设计过程中遇到的问题和收获。2开发工具介绍本系统是采用JSP编程技术和MySQL数据库,在WindowsXP操作系统环境下,采用Myeclipse开发工具以及Javabeans编写进行设计与开发完成的基于B/S结构的社区医疗管理系统。2.1JSP技术2.1.1JAVA简介.Java语言诞生于20世纪90年代的初期,最初是以智能家电的芯片语言出现的。但是很快,人们发现了它有更广阔的用武之地,由于它适用于Internet环境,引起计算机界的广泛关注,迅速发展成计算机网络编程语言。Java语言备受推崇,因其确实可称得上是新一代编程语言,具有众多优点,它简单、面向对象、可移植、与硬件无关、系统强健安全、具有很高的性能,并提供了分布性、多线程、动态性的支持。2.1.2JSP简介JSP(JavaServerPages)是由Sun公司在java语言上开发出来的一种动态网页制作技术,JSP规范是Web服务器、应用服务器、交易系统、以及开发工具供应商间广泛合作的结果,使您可以将网页中的动态部分和静态的HTML相分离。⑴将内容的生成和显示进行分离使用JSP技术,Web页面开发人员可以使用HTML或者XML标识来设计和格式化最终页面。使用JSP标识或者小脚本来生成页面上的动态内容。生成内容的逻辑被封装在标识和JavaBeans组件中,并且捆绑在小脚本中,所有的脚本在服务器端运行。⑵强调可重用的组件绝大多数JSP页面信赖于可重用的、跨平台的组件(JavaBeans或者EnterpriseJavaBeansTM组件)来执行应用程序所要求的更为复杂的处理。开发人员能够共享和交换执行普通操作的组件,井使得这些组件为更多的使用者或者客户团体所使用[6]。⑶采用标识简化页面开发Web页面开发人员不会都是熟悉脚本语言的编程人员。JSP技术封装了许多功能,这些功能是在生成与JSP相关的XML标识的动态内容时所需要的。标准的JSP标识能够访问和实例化JavaBeans组件、设置或者检索组件属性、下载Applet,以及执行用其他方法更难于编码和耗时的功能。⑷健壮性与安全性由于JSP页面的内置脚本语言是基于Java编程语言的,且都被编译为JavaServlet,它就具有Java技术的所有好处,包括健壮的存储管理和安全性[7]。⑸良好的移植性作为Java平台的一部分,JSP拥有Java编程语言“一次编写,各处运行”的特点。随着越来越多的供应商将JSP支持添加到他们的产品中,可以使用自己所选择的服务器和工具,而且更改工具或服务器并不影响当前的使用。⑹企业级的扩展性和性能当与Java2平台,企业版(J2EE)和EnterpriseJavaBeans技术整合时,JSP页面将提供企业级的扩展性和性能,这对于虚拟企业中部署基于Web的应用是必需的。2.1.3JavaBeans介绍JavaBeans是一个可以重复使用的软件组件。实际上JavaBeans是一种Java类,通过封装属性和方法成为具有某种功能或者处理某个业务的对象,简称beans。JavaBeans是基于Java语言的,具有以下特点:(1)可以实现代码的重复利用。(2)易编写,易维护,易使用。(3)可以在任何安装了Java运行环境的平台上的使用,而不需要重新编译。2.1.4JDBC驱动程序介绍从编程的角度出发,有两个主要的类负责建立与数据库的连接。第一个类DriverManager是在JDBCAPI中提供的为数不多的实际类。DriverManager负责管理已注册驱动程序的集合,实质上就是提取使用驱动程序的细节,这样程序员就不必直接处理它们。第二个类是实际的JDBCDriver类。JDBC驱动程序有四种类型。第一种驱动程序:它们都使用JDBC-ODBC桥,这是作为JDK的一个标准部分包括的。第一种驱动程序通过附加在JDBC-ODBC桥的“开放式数据库连接性”(OpenDataBaseConnectivity(ODBC))驱动程序来区分。要连接到一个不同的数据源,您只需要使用ODBC管理员注册(或有效地绑定)一个不同的ODBC数据源到合适的数据源名称即可。第二种驱动程序也称为部分Java驱动程序,因为它们直接将JDBCAPI翻译成具体数据库的API。对于分布式应用程序,这种需求会产生额外的许可证问题,还可能带来可怕的潜在代码分布问题。第三种驱动程序是纯Java驱动程序,它将JDBCAPI转换成独立于数据库的协议。JDBC驱动程序并没有直接和数据库进行通讯;它和一个中间件服务器通讯,然后这个中间件服务器和数据库进行通讯。这种额外的中间层次提供了灵活性:可以用相同的代码访问不同的数据库,因为中间件服务器隐藏了Java应用程序的细节。要转到不同的数据库,您只需在中间件服务器上改变参数。第四种驱动程序是纯Java驱动程序,它直接与数据库进行通讯。很多程序员认为这是最好的驱动程序,因为它通常提供了最佳的性能,并允许开发者利用特定数据库的功能。当然,这种紧密耦合会影响灵活性,特别是如果您需要改变应用程序中的底层数据库时。这种驱动程序通常用于applet和其它高度分布的应用程序。2.2Myeclipse介绍MyEclipse企业级工作平台(MyEclipseEnterpriseWorkbench,简称MyEclipse)是对EclipseIDE的扩展,利用它我们可以在数据库和JavaEE的开发、发布以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML,Struts,JSP,CSS,Javascript,Spring,SQL,Hibernate。MyEclipse是一个十分优秀的用于开发Java,J2EE的Eclipse插件集合,MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支持十分不错。MyEclipse目前支持JavaServlet,AJAX,JSP,JSF,Struts,Spring,Hibernate,EJB3,JDBC数据库链接工具等多项功能。可以说MyEclipse几乎囊括了目前所有主流开源产品的专属eclipse开发工具。2.3SQLServer2005数据库利用JSP结合数据库来开发网站使得网站更具有交互性,因为没有数据库支持的静态网页已经无法满足人们对于网络的需求了。数据库在各行各业中是必不可少的,下面就来介绍数据库方面的相关知识。SQL是英文StructuredQueryLanguage的缩写,意思为结构化查询语言。它的主要功能就是同各种数据库建立联系,进行沟通。按照ANSI(美国国家标准协会)的规定,SQL被作为关系型数据库管理系统的标准语言。SQL语句可以用来各种各样的操作,例如更新数据库中的数据,从数据库中提取数据等。MicrosoftSQLServer(基于结构化查询语言的数据库服务器)是基于客户/服务器结构的数据库管理系统。用户通过使用客户系统从服务器检索信息并进行本地操作,服务器关注数据库进程,而客户则关注信息的表示。此数据库管理系统能够存储大容量的数据,能够保证数据的安全性、维护数据的完整性,还具有自动高效的机制以及运行分布式处理等。2.4Browser/Server(B/S)结构B/S(Browser/Server)结构即浏览器和服务器结构。它是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,形成所谓三层3-tier结构。这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本(TCO)。以目前的技术看,局域网建立B/S结构的网络应用,并通过Internet/Intranet模式下数据库应用,相对易于把握、成本也是较低的。它是一次性到位的开发,能实现不同的人员,从不同的地点,以不同的接入方式(比如LAN,WAN,Internet等)访问和操作共同的数据库;它能有效地保护数据平台和管理访问权限,服务器数据库也很安全。特别是在JAVA这样的跨平台语言出现之后,B/S架构管理软件更是方便、快捷、高效。3需求分析及设计方案3.1需求分析需求分析是软件定义的最后一个阶段,它的基本任务是回答“系统必须做什么“这个问题。需求分析的任务不是确定系统怎样完成他的工作,而仅仅是确定系统完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求。可行性研究阶段产生的文档,特别是数据流成图,是需求分析的出发点。数据流成图中已经划分出系统必须完成的许多基本功能,系统分析员将仔细研究这些功能并进一步将它们具体化。需求分析的结果是系统开发的基础,关系到工程的成败和软件产品的质量。因此,必须用行之有效的方法对软件需求进行严格的审查验证。3.2设计方案根据前面章节需求分析的情况,结合本系统所要实现的功能,具体设计方案如下。3.2.1系统功能通过对用户需求的分析,浙江江森自控有限公司人事管理系统网站应包括以下的主要功能:(1)部门管理(2)工资管理(3)用户管理(4)用户查询(5)帮助设置(6)考勤录入(7)考勤查询(8)培训管理(9)招聘管理3.2.2系统结构整个系统主要分为部门管理,工资管理,用户管理,用户查询,帮助设置,考勤录入,考勤查询,培训管理,招聘管理,员工管理等功能模块,如图1所示。浙江江森自控有限公司人事管理系统浙江江森自控有限公司人事管理系统部门管理用户查询帮助设置考勤录入考勤查询培训管理招聘管理员工对比工资管理用户管理图1系统功能图4具体设计流程及实现4.1数据库设计4.1.1数据库需求分析及E-R图根据以上的系统功能分析,可以得到E-R图:部门和员工E-R图:部门I部门IdN1部门员工组成员工id姓名电话部门names图4-1部门和员工E-R图员工和工资E-R图:111员工员工id姓名电话生日卡号间对应工资应发合计实发图4-2员工和工资E-R图4.1.2数据表具体设计(1)部门表:记录部门基本信息,如表1所示。表1部门表(bm)序号列名数据类型长度是否必填1IdIntNotnull2Nonvarchar50null3Namesnvarchar50null4JlidIntnull5Telnvarchar50null(2)工资信息表:记录工资信息,如表2所示。表2工资信息表(gz)序号列名数据类型长度是否必填1IdIntNotnull2uidIntnull3yfnvarchar50null4jbnvarchar50null5jbfnvarchar50null6glnvarchar50null7qqnvarchar50null8jlnvarchar50null9zwjtnvarchar50null10qjnvarchar50null11totlesnvarchar50null(3)考勤表:记录考勤信息,如表3所示。表3考勤表(kq)序号列名数据类型长度是否必填1IdIntNotnull2Statenvarchar50null3Uidintnull4Timesnvarchar50null5unamenvarchar50null(4)请假表:记录请假信息,如表4所示。表4请假表(qj)序号列名数据类型长度是否必填1IdIntNotnull2Btimenvarchar50null3Etimenvarchar50null4Statenvarchar50null5Yynvarchar50null6myidintnull(5)时间表:记录时间信息,如表5所示。表5时间表(time)序号列名数据类型长度是否必填1IdIntNotnull2Namenvarchar50null3abeginnvarchar50null4aendnvarchar50null5pbeginnvarchar50null6pendnvarchar50null(6)员工表:记录员工信息,如表6所示。表6员工表(users)序号列名数据类型长度是否必填1IdIntNotnull2nonvarchar50null3Sexnvarchar50null4cardnonvarchar50null5brithdaydatetimenull6agenvarchar50null7minzunvarchar50null8hynvarchar50null9zznvarchar50null10rdtimedatetimenull11jgnvarchar50null12telnvarchar50null13usernamenvarchar50null14passwordnvarchar50null15phonenvarchar50null16bmidintnull17islivenvarchar50null18realnamenvarchar50null19typenvarchar50null(7)业绩表:记录业绩信息,如表7所示。表7业绩表(yj)序号列名数据类型长度是否必填1IdIntNotnull2uidIntnull3daysDatetimenull4yjFloatnull5descsnvarchar50null4.1.3数据字典(1)数据项字段名称数据类型长度说明IdIntNotnullNonvarchar50nullNamesnvarchar50nullJlidIntnullTelnvarchar50nullIdIntNotnulluidIntnullyfnvarchar50nulljbnvarchar50nulljbfnvarchar50nullglnvarchar50nullqqnvarchar50nulljlnvarchar50nullzwjtnvarchar50nullqjnvarchar50nulltotlesnvarchar50nullIdIntNotnullStatenvarchar50nullUidintnullTimesnvarchar50nullunamenvarchar50nullIdIntNotnullBtimenvarchar50nullEtimenvarchar50nullStatenvarchar50nullYynvarchar50nullmyidintnullIdIntNotnullNamenvarchar50nullabeginnvarchar50nullaendnvarchar50nullpbeginnvarchar50nullpendnvarchar50nullIdIntNotnullnonvarchar50nullSexnvarchar50nullcardnonvarchar50nullbrithdaydatetimenullagenvarchar50nullminzunvarchar50nullhynvarchar50nullzznvarchar50nullrdtimedatetimenulljgnvarchar50nulltelnvarchar50nullusernamenvarchar50nullpasswordnvarchar50nullphonenvarchar50nullbmidintnullislivenvarchar50nullrealnamenvarchar50nulltypenvarchar50nullIdIntNotnulluidIntnulldaysDatetimenullyjFloatnulldescsnvarchar50null4.2部分关键编码实施实现4.2.1工资管理编码实现packagecom.checkwork.servlet;importjava.io.IOException;importjava.sql.Connection;importjava.sql.PreparedStatement;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.sql.Statement;importjava.text.SimpleDateFormat;importjava.util.ArrayList;importjava.util.Date;importjava.util.List;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importjavax.servlet.http.HttpSession;importcom.checkwork.bean.Gz;importcom.checkwork.bean.Kq;importcom.checkwork.bean.User;importcom.checkwork.util.DataBaseHelp;importcom.checkwork.util.Page;/***ServletimplementationclassGzServlet*/publicclassGzServletextendsHttpServlet{ privatestaticfinallongserialVersionUID=1L;/***@seeHttpServlet#HttpServlet()*/publicGzServlet(){super();//TODOAuto-generatedconstructorstub} /** *@seeHttpServlet#doGet(HttpServletRequestrequest,HttpServletResponseresponse) */protectedvoiddoGet(HttpServletRequestrequest, HttpServletResponseresponse)throwsServletException,IOException{ //TODOAuto-generatedmethodstub this.doPost(request,response); } /** *@seeHttpServlet#doPost(HttpServletRequestrequest,HttpServletResponse *response) */ protectedvoiddoPost(HttpServletRequestrequest, HttpServletResponseresponse)throwsServletException,IOException{ //TODOAuto-generatedmethodstub request.setCharacterEncoding("UTF-8"); Stringmode=request.getParameter("mode"); StringpageNoStr=request.getParameter("pageNoStr")==null?"1" :request.getParameter("pageNoStr"); intm=0; intn=2;//每页大小 intpageNo=Integer.parseInt(pageNoStr); if(pageNo==1){//首页 }else{ m=(pageNo-1)*n; } DataBaseHelputil=newDataBaseHelp(); Connectionconn=util.openConnection(); try{ if(mode!=null&&mode.equals("list")){ this.list(n,m,conn,pageNo,request,response); } if(mode!=null&&mode.equals("add")){ Stringyf=request.getParameter("yf"); Stringuid=request.getParameter("uid"); Stringjb=request.getParameter("jb"); Stringjbf=request.getParameter("jbf"); Stringgl=request.getParameter("gl"); Stringqq=request.getParameter("qq"); Stringjl=request.getParameter("jl"); Stringzwjt=request.getParameter("zwjt"); Stringqj=request.getParameter("qj"); Stringtotles=Double.parseDouble(jb)+Double.parseDouble(jbf)+Double.parseDouble(gl)+Double.parseDouble(qq)+Double.parseDouble(jl) +Double.parseDouble(zwjt)-Double.parseDouble(qj)+""; StringsqlAdd="INSERTINTO[hrmana].[dbo].[gz]([yf],[uid],[jb],[jbf],[gl]"+",[qq],[jl],[zwjt],[qj],[totles])values('" +yf+"','"+uid+"','"+jb+"','"+jbf+"','"+gl+"','"+qq+"','"+jl+"','"+zwjt+"','"+qj+"','"+totles+"')"; System.out.println("====="+sqlAdd); Statementstmt=conn.createStatement(); stmt.executeUpdate(sqlAdd); this.list(n,m,conn,pageNo,request,response); } if(mode!=null&&mode.equals("modifyBefore")){ String[]selectFlag=request.getParameterValues("selectFlag"); Stringsql="select*fromuserswhereid="+selectFlag[0]; PreparedStatementpstmt=conn.prepareStatement(sql); ResultSetrs=pstmt.executeQuery(); Userbean=newUser(); while(rs.next()){ bean.setId(rs.getInt("id")); bean.setPassword(rs.getString("password")); bean.setRealname(rs.getString("realname")); bean.setTel(rs.getString("tel")); bean.setType(rs.getString("type")); bean.setUsername(rs.getString("username")); bean.setSex(rs.getString("sex")); bean.setMinzu(rs.getString("minzu")); bean.setAge(rs.getString("age")); bean.setBmid(rs.getInt("bmid")); bean.setBriday(rs.getDate("brithday")); bean.setCardno(rs.getString("cardno")); bean.setHy(rs.getString("hy")); bean.setIslive(rs.getString("islive")); bean.setJg(rs.getString("jg")); bean.setMinzu(rs.getString("minzu")); bean.setNo(rs.getString("no")); bean.setPhone(rs.getString("phone")); bean.setRdtime(rs.getDate("rdtime")); bean.setZz(rs.getString("zz")); break; } request.setAttribute("bean",bean); request.getRequestDispatcher("tab/userModify.jsp").forward( request,response); } if(mode!=null&&mode.equals("more")){ String[]selectFlag=request.getParameterValues("selectFlag"); Stringsql="select*fromuserswhereid="+selectFlag[0]; PreparedStatementpstmt=conn.prepareStatement(sql); ResultSetrs=pstmt.executeQuery(); Userbean=newUser(); while(rs.next()){ bean.setId(rs.getInt("id")); bean.setPassword(rs.getString("password")); bean.setRealname(rs.getString("realname")); bean.setTel(rs.getString("tel")); bean.setType(rs.getString("type")); bean.setUsername(rs.getString("username")); bean.setSex(rs.getString("sex")); bean.setMinzu(rs.getString("minzu")); bean.setAge(rs.getString("age")); bean.setBmid(rs.getInt("bmid")); bean.setBriday(rs.getDate("brithday")); bean.setCardno(rs.getString("cardno")); bean.setHy(rs.getString("hy")); bean.setIslive(rs.getString("islive")); bean.setJg(rs.getString("jg")); bean.setMinzu(rs.getString("minzu")); bean.setNo(rs.getString("no")); bean.setPhone(rs.getString("phone")); bean.setRdtime(rs.getDate("rdtime")); bean.setZz(rs.getString("zz")); break; } request.setAttribute("bean",bean); request.getRequestDispatcher("tab/userMore.jsp").forward( request,response); } if(mode!=null&&mode.equals("modify")){ Stringid=request.getParameter("id"); Stringtype=request.getParameter("type"); Stringpassword=request.getParameter("password"); Stringphone=request.getParameter("phone"); Stringtel=request.getParameter("tel"); Stringbm=request.getParameter("bm"); Stringage=request.getParameter("age"); Stringhy=request.getParameter("hy"); Stringzz=request.getParameter("zz"); Stringjg=request.getParameter("jg"); Stringsqlmodify="updateuserssetpassword='"+password+"',type='"+type+"',phone='"+phone +"',tel='"+tel+"',bmid="+bm+",age='"+age+"',hy='"+hy +"',zz='"+zz+"',jg='"+jg +"'whereid="+id; Statementstmt=conn.createStatement(); stmt.executeUpdate(sqlmodify); this.list(n,m,conn,pageNo,request,response); } if(mode!=null&&mode.equals("deletes")){ String[]selectFlag=request.getParameterValues("selectFlag"); for(inti=0;i<selectFlag.length;i++){ Stringsql="deletefromgzwhereid="+selectFlag[i]; Statementstmt=conn.createStatement(); stmt.executeUpdate(sql); } this.list(n,m,conn,pageNo,request,response); } if(mode!=null&&mode.equals("kqlist")){ Stringdate=request.getParameter("date"); Stringuname=request.getParameter("uname"); Stringstate=request.getParameter("state"); System.out.println("date"+date); if(date!=null&&!date.equals("")){//有日期 Stringsql="selectcount(*)ascfromkqwhere1=1andtimes='"+date+"'"; PreparedStatementpstmt1=conn.prepareStatement(sql); ResultSetrs=pstmt1.executeQuery(); rs.next(); if(rs.getInt("c")!=0){//有数据 System.out.println("((((((((((((((((((((((((((((("); }else{//没有新增数据 Stringsql2="select*fromusers"; PreparedStatementpstmt2=conn.prepareStatement(sql2); ResultSetrs2=pstmt2.executeQuery(); while(rs2.next()){ StringsqlAdd="insertintokq(uid,uname,times,state)values(" +rs2.getInt("id")+",'"+rs2.getString("username")+"','"+date+"','未缺勤')"; System.out.println("##########"+sqlAdd); Statementstmt=conn.createStatement(); stmt.executeUpdate(sqlAdd); } } }else{ Datedate2=newDate(); SimpleDateFormatformatter=newSimpleDateFormat("yyyy-MM-dd"); StringstrDate2=formatter.format(date2); Stringsql="selectcount(*)ascfromkqwhere1=1andtimes='"+strDate2+"'"; PreparedStatementpstmt1=conn.prepareStatement(sql); ResultSetrs=pstmt1.executeQuery(); rs.next(); if(rs.getInt("c")!=0){//有数据 }else{//没有新增数据 Stringsql2="select*fromusers"; PreparedStatementpstmt2=conn.prepareStatement(sql2); ResultSetrs2=pstmt2.executeQuery(); while(rs2.next()){ StringsqlAdd="insertintokq(uid,uname,times,state)values(" +rs2.getInt("id")+",'"+rs2.getString("username")+"','"+strDate2+"','未缺勤')"; System.out.println("sqlAddsqlAdd"+sqlAdd); Statementstmt=conn.createStatement(); stmt.executeUpdate(sqlAdd); } } } Stringsql="SELECTTOP" +n +"*FROM(" +"SELECTROW_NUMBER()OVER(ORDERBYid)ASRowNumber,*FROMkqwhere1=1"; Stringsql2="selectcount(*)fromkqwhere1=1"; if(date!=null&&!date.equals("")){ sql+="andtimes='"+date+"'"; sql2+="andtimes='"+date+"'"; }else{ Datedate2=newDate(); SimpleDateFormatformatter=newSimpleDateFormat("yyyy-MM-dd"); StringstrDate2=formatter.format(date2); sql+="andtimes='"+strDate2+"'"; sql2+="andtimes='"+strDate2+"'"; } if(uname!=null&&!uname.equals("")){ sql+="andunamelike'%"+uname+"%'"; sql2+="andunamelike'%"+uname+"%'"; } if(state!=null&&!state.equals("")){ if(state.equals("全部")){ }else{ sql+="andstate='"+state+"'"; sql2+="andstate='"+state+"'"; } } sql+=")AWHERERowNumber>"+m; PreparedStatementpstmt1=conn.prepareStatement(sql); PreparedStatementpstmt2=conn.prepareStatement(sql2); ResultSetrs=pstmt1.executeQuery(); ResultSetrs2=pstmt2.executeQuery(); rs2.next(); inttotle=rs2.getInt(1); inttotlePage=totle/n; inttotlePageY=totle%n; if(totlePageY!=0){ totlePage=totlePage+1; } List<Kq>list=newArrayList<Kq>(); while(rs.next()){ Kqbean=newKq(); bean.setId(rs.getInt("id")); bean.setUid(rs.getInt("uid")); bean.setUname(rs.getString("uname")); bean.setState(rs.getString("state")); bean.setTimes(rs.getString("times")); list.add(bean); } Pagepage=newPage(); page.setPageNo(pageNo); page.setTotlePage(totlePage); page.setTotle(totle); page.setList(list); request.setAttribute("page",page); request.getRequestDispatcher("tab/kqList.jsp").forward( request,response); } if(mode!=null&&mode.equals("kqsz")){ Stringid=request.getParameter("id"); Stringstate=request.getParameter("state"); Stringsqlmodify="updatekqsetstate='"+state +"'whereid="+id; Statementstmt=conn.createStatement(); stmt.executeUpdate(sqlmodify); request.getRequestDispatcher("UserServlet?mode=kqlist").forward( request,response); } if(mode!=null&&mode.equals("ukqsearch")){ Stringdate=request.getParameter("date"); Stringstate=request.getParameter("state"); HttpSessionsession=request.getSession(); Stringuid=session.getAttribute("id").toString(); Stringsql="SELECTTOP" +n +"*FROM(" +"SELECTROW_NUMBER()OVER(ORDERBYid)ASRowNumber,*FROMkqwhere1=1anduid="+uid; Stringsql2="selectcount(*)fromkqwhere1=1anduid="+uid; if(date!=null&&!date.equals("")){ sql+="andtimes='"+date+"'"; sql2+="andtimes='"+date+"'"; }else{ Datedate2=newDate(); SimpleDateFormatformatter=newSimpleDateFormat("yyyy-MM-dd"); StringstrDate2=formatter.format(date2); sql+="andtimes='"+strDate2+"'"; sql2+="andtimes='"+strDate2+"'"; } if(state!=null&&!state.equals("")){ if(state.equals("全部")){ }else{ sql+="andstate='"+state+"'"; sql2+="andstate='"+state+"'"; } } sql+=")AWHERERowNumber>"+m; PreparedStatementpstmt1=conn.prepareStatement(sql); PreparedStatementpstmt2=conn.prepareStatement(sql2); ResultSetrs=pstmt1.executeQuery(); ResultSetrs2=pstmt2.executeQuery(); rs2.next(); inttotle=rs2.getInt(1); inttotlePage=totle/n; inttotlePageY=totle%n; if(totlePageY!=0){ totlePage=totlePage+1; } List<Kq>list=newArrayList<Kq>(); while(rs.next()){ Kqbean=newKq(); bean.setId(rs.getInt("id")); bean.setUid(rs.getInt("uid")); bean.setUname(rs.getString("uname")); bean.setState(rs.getString("state")); bean.setTimes(rs.getString("times")); list.add(bean); } Pagepage=newPage(); page.setPageNo(pageNo); page.setTotlePage(totlePage); page.setTotle(totle); page.setList(list); request.setAttribute("page",page); request.getRequestDispatcher("tab/kqSearchu.jsp").forward( request,response); } if(mode!=null&&mode.equals("kqsearch")){ Stringdate=request.getParameter("date"); Stringuname=request.getParameter("uname"); Stringstate=request.getParameter("state"); if(date!=null&&!date.equals("")){//有日期 Stringsql="selectcount(*)fromkqwhere1=1andtimes='"+date+"'"; PreparedStatementpstmt1=conn.prepareStatement(sql); ResultSetrs=pstmt1.executeQuery(); if(rs.next()){//有数据 }else{//没有新增数据 Stringsql2="select*fromusers"; PreparedStatementpstmt2=conn.prepareStatement(sql2); ResultSetrs2=pstmt2.executeQuery(); while(rs2.next()){ StringsqlAdd="insertintokq(uid,uname,times,state)values(" +rs2.getInt("id")+"','"+rs2.getString("username")+"',"+date+",'未缺勤')"; Statementstmt=conn.createStatement(); stmt.executeUpdate(sqlAdd); } } }else{ Datedate2=newDate(); SimpleDateFormatformatter=newSimpleDateFormat("yyyy-MM-dd"); StringstrDate2=formatter.format(date2); Stringsql="selectcount(*)ascfromkqwhere1=1andtimes='"+strDate2+"'"; PreparedStatementpstmt1=conn.prepareStatement(sql); ResultSetrs=pstmt1.executeQuery(); rs.next(); if(rs.getInt("c")!=0){//有数据 }else{//没有新增数据 Stringsql2="select*fromusers"; PreparedStatementpstmt2=conn.prepareStatement(sql2); ResultSetrs2=pstmt2.executeQuery(); while(rs2.next()){ StringsqlAdd="insertintokq(uid,uname,times,state)values(" +rs2.getInt("id")+",'"+rs2.getString("username")+"','"+strDate2+"','未缺勤')"; System.out.println("sqlAddsqlAdd"+sqlAdd); Statementstmt=conn.createStatement(); stmt.executeUpdate(sqlAdd); } } } Stringsql="SELECTTOP" +n +"*FROM(" +"SELECTROW_NUMBER()OVER(ORDERBYid)ASRowNumber,*FROMkqwhere1=1"; Stringsql2="selectcount(*)fromkqwhere1=1"; if(date!=null&&!date.equals("")){ sql+="andtimes='"+date+"'"; sql2+="andtimes='"+date+"'"; }else{ Datedate2=newDate(); SimpleDateFormatformatter=newSimpleDateFormat("yyyy-MM-dd"); StringstrDate2=formatter.format(date2); sql+="andtimes='"+strDate2+"'"; sql2+="andtimes='"+strDate2+"'"; } if(uname!=null&&!uname.equals("")){ sql+="andunamelike'%"+uname+"%'"; sql2+="andunamelike'%"+uname+"%'"; } if(state!=null&&!state.equals("")){ if(state.equals("全部")){ }else{ sql+="andstate='"+state+"'"; sql2+="andstate='"+state+"'"; } } sql+=")AWHERERowNumber>"+m; PreparedStatementpstmt1=conn.prepareStatement(sql); PreparedStatementpstmt2=conn.prepareStatement(sql2); ResultSetrs=pstmt1.executeQuery(); ResultSetrs2=pstmt2.executeQuery(); rs2.next(); inttotle=rs2.getInt(1); inttotlePage=totle/n; inttotlePageY=totle%n; if(totlePageY!=0){ totlePage=totlePage+1; } List<Kq>list=newArrayList<Kq>(); while(rs.next()){ Kqbean=newKq(); bean.setId(rs.getInt("id")); bean.setUid(rs.getInt("uid")); bean.setUname(rs.getString("uname")); bean.setState(rs.getString("state")); bean.setTimes(rs.getString("times")); list.add(bean); } Pagepage=newPage(); page.setPageNo(pageNo); page.setTotlePage(totlePage); page.setTotle(totle); page.setList(list); request.set
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度环保型交通工具采购合同
- 2024年度服装设计与制造许可合同
- 2024年度家庭墙面装修设计合同2篇
- 2024年度电动车电池技术研发合同
- 2024中国石油天然气第六建设限公司招聘易考易错模拟试题(共500题)试卷后附参考答案
- 2024中国电信河北分公司校园招聘易考易错模拟试题(共500题)试卷后附参考答案
- 2024中国烟草总公司合肥设计院校园招聘2人易考易错模拟试题(共500题)试卷后附参考答案
- 2024中国建材地质勘查中心陕西总队招聘32人易考易错模拟试题(共500题)试卷后附参考答案
- 2024中国化学工程重型机械化限公司招聘15人易考易错模拟试题(共500题)试卷后附参考答案
- 《NCCN解读王捷》课件
- 益生菌产品活动策划
- 妇科护理-异常子宫出血的护理
- 舜宇集团人才测评题
- 电站库区清淤方案
- 2023-2024年四川省成都市某校高一上学期12月阶段性测试物理试题 (解析版)
- 体育课堂数字化教学设计方案
- 2024年中铁高新工业股份有限公司招聘笔试参考题库含答案解析
- 客运员出站口岗位规范
- 物业安管主管的安全监督与检查技巧
- 大型医院检验科完整SOP程序文件
- 纯水机结构及工作原理
评论
0/150
提交评论