引言
反观世界千年人类社会进化史,从坐等撷取自然果实到手持各式工具主动狩猎,从双脚丈量世界土地到千变万化的出行载具,社会效率在千年跨度里的每一天经历着指数倍增长,究其原因,是人力与工具的与时俱进,而今时代仍在经历着由廉价出卖人力到兜售创造性脑力的巨变,巨变的洪流中,社会各方都追求科学的管理以追求效率,人力资源的科学效率管理就成了时代进步的基石,由此信息爆发的世界里理所当然的联系到传统人力资源管理与信息技术相结合。
对比传统人力资源管理模式与结合现代化技术的人力管理泾浊渭清。传统人力资源管理系统效率低,出错率高,在当前信息大爆炸的时代中每天堆积的变动信息使得人力工作负重前行,显然无法满足企业工作要求,同时管理成本居高不下拖慢企业发展步伐;而结合了信息技术的人力管理具有高效,容错率高等卓越优势,系统搭建与运营到维护成本与传统者比起来如同九牛一毛,人员信息查找从翻箱倒柜的大动干戈变成几个按键的不动声色,极大程度上减少信息文件管理难度。
基于效率追求,开发了此系统。本系统避免了在人力资源管理投入大量人力,物力,及时间,利用成熟计算机技术根据企业运营需求和要求搭建较为完备科学的系统使人力资源管理自动化,降低人工劳动比率,此外利用计算机的高计算,大储存,可以对大量信息高效储存,筛选,修改,查询或删除,同时保密性高等特点为职务信息提供安全的存储环境,进而长期有效存储。
1系统分析
1.1系统的需求分析
人力资源管理系统意在提升企业人力资源管理效率,降低人工成本,促进人力部门工作进程。
首先,本系统为企业提供规范化的考勤模式,使企业高效监管人力调配及利用率。
其次,本系统为员工提供便捷的信息检索通道,方便员工查询个人资料;同时提供完善的保密措施,为员工私人信息提供可靠的安全保障。
企业人力资源的管理,主要方面集中在单位员工的个人信息、调入调出等,因此本系统重点达成对数据的录入、删除、统计、更新等功能。
1.2系统的可行性分析
首先现有技术可以支持系统的开发,调试,运营及维护。利用JSP搭建平台,结合VBScript,JavaScript,HTML代码来制作动态网页,这样就可以完成应用程序,无需编译,即可在服务器端口运营;其次利用Mysql这种简单易懂的语言进行应用前端开发和数据库的搭建与维护;同时利用像Windows记事本类似的普通编辑器即可进行编辑。综上无论是硬件与软件都可以轻易达到要求,技术层面可行。
其次开发此系统带来的经济效益相当可观。企业经营不只要求收益高,还需要降低成本,本系统在保证工作效率的同时降低传统人力资源需要的人工成本,信息储存成本,和时间成本等多方面成本,而且系统明确的分管模块,清晰的权限分配为用户提供更科学的操作环境,不仅如此,系统的开发运营经济成本较低,长远来看,本系统带来的长期效益不可估量,所以经济层面具有可行性。
最后本系统实际应用依然可行,系统操作明晰,各板块分类科学,操作简单,信息的录入,查询,修改随时随地,简单培训即可上手操作。
1.3系统的功能分析
开发企业人力资源管理系统的目的在于提升企业机构的工作效率,实行企业职工的系统化、标准化和自动化管理。
系统包含企业管理员和企业员工两种登陆身份,权限分配明确,只有被授权的用户才能访问该系统中的资源。为了保证管理权限严格分离,选择严格的身份认证系统,通过验证才允许登录。一般企业员工能够进行个人考勤查询、基本信息查询、并且能够修改个人登录密码的管理功能;管理员的权限包含增添或删去数据信息,搜索改动数据信息、管理请假信息、考勤信息管理,能够查看员工考勤信息和改动数据库中基本信息数据,并且调整这个系统登录功能,具有系统的整体使用权限。
1.用户认证:一是企业管理员,二是普通员工。
2.权限管理:管理者身份进入系统可以对系统数据进行增减,改动。以员工身份进入系统可以完成个人考勤、工资的查询,也可以修改登录密码。
3.控制系统:系统管理员可以控制企业的工资奖金信息管理、请假缺勤考勤管理、数据信息管理、学历信息管理和部门信息管理。
4.员工个人信息:包含编号、姓名、性别、毕业院校、部门、考勤情况、工资。
1.4系统开发步骤
信息管理系统的创建和运用一般划分为总体规划、系统开发和系统运行三个阶段,本系统分为五个步骤完成,如下所示:
1.问题的定义:讨论系统的开发和需求,锁定系统主要功能开发和运转可行性。
2.需求分析:在已知软件开发具有可行性后,详细的对系统个功能的指向性需求分析。
3.软件设计:该阶段需要依据需求分析的结果,对全部系统实行设计,例如系统框架设计、数据库设计等。
4.程序编程:根据计算机系统的规定,软件设计的功能是由计算机实现的修改程序代码。
5.系统测试:在完成管理系统的设计后,应进行严格的测试以检测和纠正系统设计过程中的问题。
2系统设计
2.1概述
本系统将在MVC框架下结合Mysql数据库加以实现,通过对大量信息的进行增、删、改、查的简单操作实现用户对信息的管理操作;通过Web服务进行Web的配置、权限的设置、资源存放的管理、资源统计等的功能实现对相关资源的共享;根据数据结构中线性结构、树形结构及图形结构中的相关算法,对用户的相关要求提供最优化的管理信息。
2.2系统的数据流图
本次设计开发的系统是基于myeclipse下平台的B/S模式系统。后台数据处理层,中间业
务逻辑层,用户界面层组成三层结构的体系。后台使用数据库,中间层使用数据的分析和处理程
序,前台使用WEB连接的三种层次结构的发展模式。使用和MYSQL数据库和JSP技术平台开
发。
前端软件使用WEB技术开发,通过在服务器端下载的方式使客户端运行,这样可以在最大
程度上提高整个系统的安全性能;由于该系统对客户端的机器硬件要求较低,原来的硬件和的软
件投资可被用户所保留;同时,由于用户只需要配置和维护好服务器,系统的升级难度、维护和
费用也将在最大程度上降低;此外,客户界面采用浏览器,操作起来非常简单,大量的培训费用
和时间又可以节省。在具体实施的时候,我们可以充分的利用JSP技术,WEB开发出来大大提
高了应用的扩展性、功能性及可靠性,最终的结果就不是简单的HTML页面了,而是可在它之上
构筑一种应用完整的平台。系统主要是针对企业人力资源工作的管理。包括会员对人力资源信息
的查询,管理员调控维护企业信息和用户信息。依据对功能和目标的解析情况,选择依步骤追求
精益求精、从上而下的方式,对系统结构进行设计。系统开发流程参考图2-1、系统执行流程参考图2-2。
图2-1系统数据流图图2-2系统执行流图
2.3系统的功能
系统应具备的功能对于员工用户而言有修改登录密码,查询员工自己的考勤信息和工资信息,对于系统管理员而言有工资信息管理,请假缺勤管理,员工信息管理等功能,得出结构参考图2-3。
图2-3人力资源管理系统功能结构图
2.4数据库设计
锁定明确物理数据结构是数据库设计的目标。然而数据库管理系统的结构约束成为了数据库设计的最大障碍。模式设计的输入,即第三范式形式的实体和关系模型。一般情况下,为了缓解
数据繁琐赘余的程度我们都利用范式定义。没有科学、全面地设计数据库,则在软件运行时高频率的发生效率低下的工作故障,甚至留下漏电,和系统崩溃的巨大隐患,繁杂冗长的数据设计,缺少长远打算,可能会使系统的部分功能难以正常运行,反而使后期设计师纠错,维护,修改的工作造成不必要的压力,反观注重数据库设计则会在很大程度上加快系统运行流畅度,及减少系统后期维护的必要,达到高水平的缩减人力物力的成本的理想效果,清晰的数据设计为系统发出的每一条指令的精确高效执行奠定基础。
2.4.1数据库需求分析
用户的需求详细表现在不同信息的呈现,存储,更新和查询,这需要数据库存储结构必须完全自动化,并且要求数据库存储结构可以最大程度上实现不同信息的输入和输出,组织和收集基本数据源和数据结构以及数据处理过程,以形成详细的数据字典,为之后的具体的数据库设计打下基础。
2.4.2概念设计
数据完整性指的是数据的准确性和相容性,完整性规则是确保数据库数据准确性的强大工具。该系统中数据完整性规则包含主关键字完整性规则,即是每一个基本关系中主的关键字值要求是唯一的,并且没有重合的权限。其他完整性规则:
E-R模型的构成为属性、实体、联系三种元素。以下用E-R图来表示E-R模型。属性形容实体特征,用户在办公环境中能涉及到的事务是实体。
1.实体的性质属性。椭圆形的框架连接到该表,是一个关键属性的实体之间的线表示主码,在关键属性项下用划线标识。
2.实体模型等效于一个表,一组实体,而不是一个单个实体或表行。实体由矩形框表示,实体名称在矩形框中标记。对于以菱形表示的实体,联系的姓名写在菱形框上,并且菱形通过无向边连接到相关实体,并在无向边旁边标记联系的类型。
3.项目各子模块中有互相关联的关系存在于相同的主键字段之间
图2-4管理员信息的实体E-R图图2-5员工信息的实体E-R图
图2-6工资信息的实体E-R图图2-7请假信息的实体E-R图

图2-8总体信息实体E-R图
2.4.3数据库逻辑结构设计
完成概念数据库结构的设计后,可以将上述数据库概念转换为给定数据库系统支持的实际数据类型,即逻辑数据库结构。
在设计过程中,不但研考了设计数据表范例规则,并且考虑了更为重要的用户使用的便利性。该系统的数据结构比较清晰,根据人力资源管理系统的功能要求,设计了数据库中的主表:
表1 Admin用户信息表
列名数据类型长度说明
id int 4编号
name varchar 50管理员ID
password varchar 50管理员密码
Realname varchar 50增加时间
Sex varchar 50性别
age varchar 50年龄
address varchar 50地址
tel varchar 50电话
addtime varchar 50时间
表2 FI部门信息表
列名数据类型长度说明
id int 4编号
Mc varchar 50名称
表3 XI学历信息表
列名数据类型长度说明
id int 4编号
Mc varchar 50名称
表4 Xx学校信息表
列名数据类型长度说明
id int 4编号
Mc varchar 50名称
表5 Gz信息表
列名数据类型长度说明
id int 4编号
Yg varchar 50员工
Nian varchar 50年
Yue varchar 50月
Jb varchar 50基本
Kc varchar 50扣除
Jx varchar 50绩效
Jj varchar 50奖金
Hj varchar 50合计
表6 Qj信息表
列名数据类型长度说明
id int 4编号
Yg varchar 50员工
Sj varchar 50时间
Kc varchar 50扣除
Bz varchar 50备注
2.5用户界面设计
用户界面一般来说使用户直接面对的系统界面,一般涵括数据输入,输出,人机会话模式等。考虑到管理员使用者并非系统算法的熟练者,所以本系统选择菜单种类以表格填写和选择勾画与回答界面交互方法。
2.5.1系统安全性验证用户界面设计
考虑到用户登录界面是访问系统的必经关口,也是首先映入使用者眼帘的第一界面,所以选择间接,富有艺术色彩,且有应用价值的样式。
成功访问系统首先看到的界面展现如下(参考图3-1):

图2-1用户登录界面
2.5.2系统主界面屏幕区域设计
系统的主界面屏幕如下图2-2所示:
状态信息区有登录用户名,退出等
主菜单区
主要功能有:员工信息管理,查询工资,查询考勤等
工作区
图2-2
3系统编码与实现
3.1开发平台的选择
Windows系统最初以桌面环境为原型进行发展,人机操作性优异是其一大卖点,在信息爆炸时代时间显得机器可贵,这就要求工作流程人性化兼顾着效率,历代Windows高质量的传承了界面简易明了,使用界面富有艺术性,操作简单符合人体习惯的优点最重要的是保持高效率。同时Windows供应给硬件厂商分布广泛,使得他们自主选择的适配各代Windows,另一方面刺激Windows的自我升级和优化,一代比一代接近完美。另外,Windows控制着大量接口与设计标准,并共享数据,使相当一部分软件以其为平台开发,这也为客户提供便利,因此本系统秉持操作简易、适配性能、硬软件环境要求低、易于系统后期维护升级和高性价比的追求,最终锁定Windows中文版作为基础平台。与时俱进的更新升级,科学的设计界面,简易的操作使得微软被广泛选择,满足我们系统的大部分目标性能,为系统提供可期的发展潜力。
3.2开发工具的选择
本系统前台选择JSP数据库技术作为前台,后台数据库选用mysql,采用三层构架网络。JavaBean具有负载能力高、运算速度快的优点,所以它负责承载全部数据逻辑运算将在很大程度上提升系统处理数据的能力,这种配置下的人力资源系统也将拥有无可比拟的效率,同时能被Apache环境兼容是其无法被取代的原因。配合JSP构建的网站接口,和SQL存放数据构成三层结构保证了安全性和稳定性,某种程度上为审核部门缓解工作压力。JSP网页完成客户端浏览器的模拟操作和数据的逻辑表现。属于系统内部的业务逻辑更为复杂,以JavaBean的组件为核心,其组件通过www服务器运行,客户端浏览器通过JSP返回。为了使网页排版更为简洁,给用户提供更高效的操作环境,选择分离业务逻辑和表现逻辑,这也使系统可扩充性和可维护性被加强;系统要求服务器定义数据逻辑和业务逻辑,所以通过JDBC中间件实现系统对数据库的访问;为了获得成熟的数据库支持,本系统词用MYSQL作为数据库服务器,庞大的系统运行需要Tomcat5.0.3这样强大的引擎驱动运转,如此工具的选择与分工被完整的完成。
三层结构限制了非法访问,很大程度上避免了信息暴露在危险环境中的机会,从而提供信息安全环境,业务功能组件可以被授权管理,方便业务管理。管理的三层结构参考图3-1。
图3-1 web三层结构管理模型
3.3系统的初始化
3.3.1创建主程序
系统主要文件及目的如表3-1所示。
主要文件目的
ComServlet负责具体的系统功能模块流程的控制,在此层里要调用Service层的接口来控制业务流程。
Dao做数据持久层的工作,负责与数据库进行联络的一些任务都封装在此
service负责业务模块的逻辑实现
Constant定义各对象的显示方法
Common HTML符号过滤类,数据库输出字符串的过滤,过滤空格,格式化日期
.xml增删改查的sql语句,执行完成之后,一层层返回,最后返回给ComServlet,ComServlet根据返回的信息作相应的处理。
.jsp各个功能的界面设计
表3-1
3.4创建系统用户管理模块
3.4.1创建“系统登录”
系统登录的界面主要由“点击登录”一个按钮构。【点击登录】按钮实现过程为:声明一个公共类HttpServletRequest,定义username和password属性,通过if循环和try方法,输入登录账号和密码,调用数据库Admin用户信息表,执行login()函数的调用,对应后台controller的logincontroller类,使用findByUser()方法,判断登录账号密码的正确性,如果无法从数据库中调用,则有“登录信息错误”警示框。如果输入登录账号密码正确,可以登录进行下一个界面。其中角色方面可以选择普通员工和管理员,如图3-3。
图3-3用户登录界面
3.4.2创建“部门信息管理”
进入主菜单界面系统管理菜单下的部门信息管理模块界面。部门信息管理界面主要由“删除”、“确认提交”按钮构成。
1.【删除】按钮实现过程为:声明一个公共类HttpServletRequest,定义flag属性,使用equal()方法,通过if循环,调用数据库FI部门信息表,执行login()函数,对应后台contrller
的logincontroller类,查询到需要删除部门,点击删除按钮,删除成功则跳出“操作成功”警示框。
2.【确认提交】按钮实现过程:声明一个公共类HttpServletRequest,定义flag属性,使用equal()方法,通过if循环,调用数据库FI部门信息表,执行login()函数,对应后台contrller的logincontroller类,调用delfl表,输入需要添加的部门名称,点击确认提交按钮,提交成功。
运行界面如图3-3所示。
图3-3部门信息管理模块界面
3.4.3创建“学历信息管理”
进入主菜单界面系统管理菜单下的学历信息管理模块界面(如图3-4所示)。学历信息管理界面主要由“删除”、“确认提交”按钮构成。
1.【删除】按钮实现过程为:声明一个公共类HttpServletRequest,定义flag属性,使用equal()方法,通过if循环,调用数据库XI部门信息表,执行login()函数,对应后台contrller
的logincontroller类,查询到需要删除学历名称,点击删除按钮,删除成功则跳出“操作成功”警示框。
2.【确认提交】按钮实现过程:声明一个公共类HttpServletRequest,定义flag属性,使用equal()方法,通过if循环,调用数据库XI学历信息表,执行login()函数,对应后台contrller的logincontroller类,输入需要添加的学历名称,点击确认提交按钮,提交成功。
运行界面如图3-4所示。
图3-4学历信息管理模块界面
3.4.4创建“学校信息管理”
进入主菜单界面系统管理菜单下的学校信息管理模块界面。学校信息管理界面主要由“删除”、“确认提交”按钮构成。
1.【删除】按钮实现过程为:声明一个公共类HttpServletRequest,定义flag属性,使用equal()方法,通过if循环,调用数据库Xx学校信息表,执行login()函数,对应后台contrller
的logincontroller类,查询到需要删除学校名称,点击删除按钮,删除成功则跳出“操作成功”警示框。
2.【确认提交】按钮实现过程:声明一个公共类HttpServletRequest,定义flag属性,使用equal()方法,通过if循环,调用数据库Xx学校信息表,执行login()函数,对应后台contrller的logincontroller类,输入需要添加的学校名称,点击确认提交按钮,提交成功。
运行界面如图3-5所示。
图3-5学校信息管理模块界面
3.4.5创建“添加用户”
进入主菜单界面系统管理菜单下的员工信息管理模块界面。员工信息管理模块界面主要有“确定”按钮组成。【确定】按钮的实现过程为:先用String声明username、password、xm、xb、sr等变量,用equals()方法,通过声明str拼接字符串,'"+username+"',’”password+”’
'"+xm+"','"+xb+"','"+sr+"','"+jg+"','"+bm+"','"+rz+"','"+lz+"','"+zz+"','"+xl+"','"+xx+"','"+ssh+",输入员工工号、初始密码、姓名、性别等信息,使用executeUpdate方法,执行增删改,调用更新数据库中FI部门信息表、XI学历信息表、Xx学校信息表等,对应后台contrller的logincontroller类,最后点击确认按钮,跳出“操作成功”,即添加完成。如图3-5所示。
图3-5员工信息管理模块界面
3.4.6创建“请假缺勤管理”
图3-6请假缺勤信息管理模块界面
请假缺勤管理包含三个功能,分别是【请假缺勤管理】、【登记请假缺勤】、两个按钮,具体如图3-7、图3-8。
图3-7员工请假缺勤管理模块界面
该界面主要是为了查询企业员工请假缺勤总和,包括了查询ID、员工工号、员工姓名、发生时间、发生类型、扣除薪资、备注信息、修改和删除,声明一个类通过调用getParameter,comUp和setAttribute函数方法,调用数据库Gz信息表,使用getRequestDispatcher()函数得到数据库数据查询员工请假缺勤信息,调用函数getPageCount()来获得共多少页,使用getMessage()函数,try方法和for循环来得到每页需要显示的信息。声明一个PersonController的公共类,然后赋予它一个在Allperson的值,找到这个文件下的StopPerson函数。执行的是获取所有人员请假缺勤信息,转换成一个list,将所选的一行进行删除,并修改statue的值。如图3-7。
图3-8员工登记请假缺勤管理模块界面
员工登记请假缺勤界面由【确认提交】按钮组成,其实现过程为:输入员工工号,定义flag变量,声明一个类通过调用getParameter,comUp和setAttribute函数方法,选择请假时间,选择发生类型,发生类型有“请假”和“缺勤”两个选项,输入扣除薪资,如果有备注,输入备注信息,最后点击【确定按钮】即可。如图3-8。
3.5创建企业员工查询信息模块
企业员工查询信息界面由【修改登录密码】、【我的考勤信息】、【我的工资信息】三个按钮组成,如图3-19。
图3-9员工信息查询模块界面
3.5.1创建“员工修改登录密码”
图3-10员工修改登录密码模块界面
员工修改登录密码界面由【确定】和【重填】两个按钮组成,【确定】和【重填】两个按钮的实现过程为:修改密码时使用upUserupwd()方法,输入旧密码,使用getUserupwd()方法查询对应的表单密码是否正确,再用if条件语句,查看新密码和确认密码是否正确相同,如果相同则点击确定按钮,调用updateUserupwd()方法,连接数据库,修改state信息。点击确定按钮,跳出“修改成功”即为成功。
3.5.1创建“我的考勤信息”
图3-11我的考勤信息模块界面
该界面可查询员工个人考勤的信息,查询发生时间、发生类型和扣除的薪资。
3.5.1创建“我的工资信息”
图3-12我的工资信息模块界面
该界面可查询员工个人的工资详细,包括月份基本工资、考勤扣除、奖金补贴、绩效工资、扣除保险费用和工资合计。
4系统运行与调试
4.1系统的配置
(1)硬件配置要求(最低):CPU:PII200以上,内存:8G以上,硬盘:8G以上
(2)软件配置要求:WINDOWS中文版操作系统。
4.2系统的运行
在安装了MyEclipse、MySQL的计算机上,打开MyEclipse中的程序目录并且找到执行文件,双击可执行文件即可。
4.3系统的调试
在系统设计过程中,不可避免会出现一些错误。可以在运行程序时自动请求指令的语法错误,并要求立即对其进行更正,因此这些错误相对容易发现和更正。但是,另一种类型的错误是由于程序运行时某些数据计算公式的逻辑不正确或操作不正确而导致的错误结果。这种类型的错误是高度隐藏的,有时可能会出现,但有时可能不会出现,因此调查此类动态错误的发生既费时又费力。在本设计中程序调试我利用了以下几个步骤:
1.测试系统开发的程序是否存在错误,当故障发生时,首先判断故障时由于系统故障还是运行的运用程序有故障,一般情况下,系统的程序稳定,出现故障的可能性很低。绝大部分故障是由于运用程序本身出现问题,我们可以重新启动电脑或者重新打开运用程序来解决。
2.当程序本身发生故障时,需要各个模块分别调试,找出出现故障的模块,再单独修改,单独运行多次直至没有故障,再加入总程序运行看是否有故障,直至修改完成。
结论
本次毕业设计制作的完成,对于像我这样的JSP初学者来说,该模块仍然不够完善。数据库
设计相对简单。关于本科项目中使用的JSP语言,仍然有很多知识不够全面,还有很多地方无法
完全理解和掌握。通过本次毕业论文的设计和制作,我受益匪浅。首先,由于在课堂上没有涉及
到用于毕业设计的JSP技术以及其中使用的JSP语言的其他部分,因此使用它进行设计要求我必须要经过大量的自学才能掌握,学习的过程中,我提升了自我学习的能力,并且更好地了解JSP的学习。在独立完成毕业项目时遇到了很多困难,我请教了指导老师和同学,在这个过程中,我意识到了知识的重要性。本人首次接触JSP。并运用JSP的知识,运用Myeclipse开发平台,借助mysql数据库。在指导老师的大力支持和帮助下,开发出人力资源管理系统的设计与实现。对我有很大的激励。本次开发中,本人的感触很深。系统需求阶段,都是我和指导老师同学共同讨论完成的。
在程序设计的过程中,我还了解到,软件不是一个人,一时半刻能够完成的。编写系统需要强烈的求学意识。开发出适用性强、可读性好的软件需要一个人认真努力的去钻研。本次开发中,加强了个人和指导老师代码编写之间的相互交流。让整个代码编写事半功倍。
显然,在系统开发过程中还出现了许多问题,例如,由于我是第一次学习JSP,所以对设计语言的理解不够,这导致了系统开发出现了真空地带。但是,无论如何,我始终相信,不会由于第一部分的设计完成而停下来。经过第一阶段的设计。使我熟悉JSP语言。也了解整个设计过程。我相信后期的设计将很快弥补当前阶段的缺点。
致谢
感谢宿迁学院四年来对我的辛苦培育,让我在大学这四年来学到了很多东西,特别感谢文理学院为我提供了良好的学习环境,感谢指导老师对我无微不至的关怀和知道,让我得以在学习生涯中顺利成长。
特别感谢我的导师,在本系统开发中给予我悉心指导,从系统开发到结束中遇到过很多困难都是他给我鼓励与指引,使我能够克服困难,将系统完成。谢谢!
参考文献
[1]邢周凌.高绩效人力资源管理系统[M].上海:复旦大学出版社,2014:235.
[2]田立法.人力资源管理系统与企业绩效理论与对策[M].北京:中国经济出版社,2016:99.
[3]张玲.数据库[M].天津:天津科学技术出版社,2018:36.
[4]王六平.数据库系统原理与应用[M].武汉:华中科技大学出版社,2019:53.
[5]赵兵.经济与管理科学:企业经济[J].人力资源管理研究,2006(1):15-31.
[6]李杰义.科技管理研究:学习向导与人力资源管理系统[J].基于组织均衡的视角,2019(16):33-70.
[7]韩瑞兰.现代营销:人力资源管理的实现[J].人力资源,2019(8):77-100.
[8]孙一林,彭波.Java数据库编程实例[M].清华大学出版社,2002.8:30-210
[9]张孝祥.深入Java Web开发内幕——核心基础[M].北京:电子工业出版社.2006
[10]林信良.Spring2.0技术手册[M].北京:电子工业出版社,2005
[11]李安渝.Web Services技术与实现[M].北京:国防工业出版社,2003
[12]孙卫琴,李洪成.Tomcat与Java Web开发技术详解[M].电子工业出版社,2003.6:1-205
[13]朱红,司光亚.JAVA Web编程指南[M].电子工业出版社,2001.9:34-307
[14]逯鹏,张赞.数据结构课程教学方法的研究和实践[J].教育教学论坛,2015(18):121-123.
[15]郭艳燕,童向荣,孙雪姣等.程序设计基础与数据结构两门课程的教学衔接[J].计算机教育,2014.10,47-50.
附录
package com.util;
/**
*常量
* author Administrator
*/
public final class Constant{
public final static String CONTENTTYPE="text/html;charset=gb2312";
public final static String CHARACTERENCODING="gb2312";
public final static int DEFAULT_ERROR=0;
public final static int SUCCESS=1;
public final static int NAME_ERROR=2;
public final static int PASSWORD_ERROR=3;
public final static int SYSTEM_ERROR=4;
public final static int SAME_NAME=5;
public final static String NONAME_ERROR="noname_error";
}
package com.action;
/**
*管理员登陆增加修改删除
*/
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.List;
import java.util.StringTokenizer;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import com.bean.ComBean;
import com.util.Constant;
public class AdminServlet extends HttpServlet{
/**
*Constructor of the object.
*/
public AdminServlet(){
super();
}
/**
*Destruction of the servlet.<br>
*/
public void destroy(){
super.destroy();//Just puts"destroy"string in log
//Put your code here
}
/**
*The doGet method of the servlet.<br>
*
*This method is called when a form has its tag value method equals to get.
*
* param request the request send by the client to the server
* param response the response send by the server to the client
* throws ServletException if an error occurred
* throws IOException if an error occurred
*/
public void doGet(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException{
doPost(request,response);
}
/**
*The doPost method of the servlet.<br>
*
*This method is called when a form has its tag value method equals to post.
*
* param request the request send by the client to the server
* param response the response send by the server to the client
* throws ServletException if an error occurred
* throws IOException if an error occurred
*/
public void doPost(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException{
response.setContentType(Constant.CONTENTTYPE);
request.setCharacterEncoding(Constant.CHARACTERENCODING);
String date=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(Calendar.getInstance().getTime());
String date2=new SimpleDateFormat("yyyy-MM-dd").format(Calendar.getInstance().getTime());
try{
String method=request.getParameter("method").trim();
ComBean cBean=new ComBean();
HttpSession session=request.getSession();
if(method.equals("one")){//admin登录
String username=request.getParameter("username");
String password=request.getParameter("password");
String sf=request.getParameter("sf");
String str=cBean.getString("select id from admin where username='"+username+"'and password='"+password+"'and sf='"+sf+"'");
if(str==null){
request.setAttribute("message","登录信息错误!");
request.getRequestDispatcher("login.jsp").forward(request,response);
}
else{
session.setAttribute("user",username);
session.setAttribute("sf",sf);
request.getRequestDispatcher("admin/index.jsp").forward(request,response);
}
}
else if(method.equals("uppwd")){//修改密码
String username=(String)session.getAttribute("user");
String oldpwd=request.getParameter("oldpwd");
String newpwd=request.getParameter("newpwd");
String str=cBean.getString("select id from admin where username='"+username+"'and password='"+oldpwd+"'");
if(str==null){
request.setAttribute("message","原始密码信息错误!");
request.getRequestDispatcher("admin/system/editpwd.jsp").forward(request,response);
}
else{
int flag=cBean.comUp("update admin set password='"+newpwd+"'where username='"+username+"'");
if(flag==Constant.SUCCESS){
request.setAttribute("message","操作成功!");
request.getRequestDispatcher("admin/system/editpwd.jsp").forward(request,response);
}
else{
request.setAttribute("message","操作失败!");
request.getRequestDispatcher("admin/system/editpwd.jsp").forward(request,response);
}
}
}
else if(method.equals("adminexit")){//退出登录
session.removeAttribute("user");session.removeAttribute("sf");
request.getRequestDispatcher("index.jsp").forward(request,response);
}
else if(method.equals("addm")){//增加系统用户
//String usernam="";String password="";String xm="";String xb="";String sr="";String jg="";String bm="";String rz="";String lz="";String zz="";String xl="";String xx="";String ssh="";
String username=request.getParameter("username");
String password=request.getParameter("password");
String xm=request.getParameter("xm");
String xb=request.getParameter("xb");
String sr=request.getParameter("sr");
String jg=request.getParameter("jg");
String bm=request.getParameter("bm");
String rz=request.getParameter("rz");
String lz=request.getParameter("lz");
String zz=request.getParameter("zz");
String xl=request.getParameter("xl");
String xx=request.getParameter("xx");
String ssh=request.getParameter("ssh");
String str=cBean.getString("select id from admin where username='"+username+"'");
if(str==null){
int flag=cBean.comUp("insert into admin(username,password,xm,xb,sr,jg,bm,rz,lz,zz,xl,xx,ssh)"+
"values('"+username+"','"+password+"','"+xm+"','"+xb+"','"+sr+"','"+jg+"','"+bm+"','"+rz+"','"+lz+"','"+zz+"','"+xl+"','"+xx+"','"+ssh+"')");
if(flag==Constant.SUCCESS){
request.setAttribute("message","操作成功!");
request.getRequestDispatcher("admin/system/index.jsp").forward(request,response);
}
else{
request.setAttribute("message","操作失败!");
request.getRequestDispatcher("admin/system/index.jsp").forward(request,response);
}
}
else{
request.setAttribute("message","该用户名已存在!");
request.getRequestDispatcher("admin/system/index.jsp").forward(request,response);
}
}
else if(method.equals("upm")){//修改系统用户
String id=request.getParameter("id");
String username=request.getParameter("username");
String password=request.getParameter("password");
String xm=request.getParameter("xm");
String xb=request.getParameter("xb");
String sr=request.getParameter("sr");
String jg=request.getParameter("jg");
String bm=request.getParameter("bm");
String rz=request.getParameter("rz");
String lz=request.getParameter("lz");
String zz=request.getParameter("zz");
String xl=request.getParameter("xl");
String xx=request.getParameter("xx");
String ssh=request.getParameter("ssh");
int flag=cBean.comUp("update admin set password='"+password+"',xm='"+xm+"',xb='"+xb+"',sr='"+sr+"',"+
"jg='"+jg+"',bm='"+bm+"',rz='"+rz+"',lz='"+lz+"',zz='"+zz+"',xl='"+xl+"',xx='"+xx+"',ssh='"+ssh+"'where id='"+id+"'");
if(flag==Constant.SUCCESS){
request.setAttribute("message","操作成功!");
request.getRequestDispatcher("admin/system/index.jsp").forward(request,response);
}
else{
request.setAttribute("message","操作失败!");
request.getRequestDispatcher("admin/system/index.jsp").forward(request,response);
}
}
else if(method.equals("delm")){//删除系统用户
String id=request.getParameter("id");
int flag=cBean.comUp("delete from admin where id='"+id+"'");
if(flag==Constant.SUCCESS){
request.setAttribute("message","操作成功!");
request.getRequestDispatcher("admin/system/index.jsp").forward(request,response);
}
else{
request.setAttribute("message","操作失败!");
request.getRequestDispatcher("admin/system/index.jsp").forward(request,response);
}
}
else{//无参数传入转到错误页面
request.getRequestDispatcher("error.jsp").forward(request,response);
}
}catch(Exception e){
e.printStackTrace();
request.getRequestDispatcher("error.jsp").forward(request,response);
}
}
/**
*Initialization of the servlet.<br>
*
* throws ServletException if an error occure
*/
public void init()throws ServletException{
//Put your code here
}
}package com.action;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import com.bean.ComBean;
import com.util.Constant;
public class ComServlet extends HttpServlet{
/**
*Constructor of the object.
*/
public ComServlet(){
super();
}
/**
*Destruction of the servlet.<br>
*/
public void destroy(){
super.destroy();//Just puts"destroy"string in log
//Put your code here
}
/**
*The doGet method of the servlet.<br>
*
*This method is called when a form has its tag value method equals to get.
*
* param request the request send by the client to the server
* param response the response send by the server to the client
* throws ServletException if an error occurred
* throws IOException if an error occurred
*/
public void doGet(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException{
doPost(request,response);
}
/**
*The doPost method of the servlet.<br>
*
*This method is called when a form has its tag value method equals to post.
*
* param request the request send by the client to the server
* param response the response send by the server to the client
* throws ServletException if an error occurred
* throws IOException if an error occurred
*/
public void doPost(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException{
response.setContentType(Constant.CONTENTTYPE);
request.setCharacterEncoding(Constant.CHARACTERENCODING);
HttpSession session=request.getSession();
ComBean cBean=new ComBean();
String date=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(Calendar.getInstance().getTime());
String date2=new SimpleDateFormat("yyyy-MM-dd").format(Calendar.getInstance().getTime());
String method=request.getParameter("method");
if(method.equals("addfl")){//增加部门分类************代码均有注释**************
String mc=request.getParameter("mc");
int flag=cBean.comUp("insert into fl(mc)values('"+mc+"')");
if(flag==Constant.SUCCESS){
request.setAttribute("message","操作成功!");
request.getRequestDispatcher("admin/fl/index.jsp").forward(request,response);
}
else{
request.setAttribute("message","系统维护中!");
request.getRequestDispatcher("admin/fl/index.jsp").forward(request,response);
}
}
else if(method.equals("delfl")){//删除部门分类
String id=request.getParameter("id");
int flag=cBean.comUp("delete from fl where id='"+id+"'");
if(flag==Constant.SUCCESS){
request.setAttribute("message","操作成功!");
request.getRequestDispatcher("admin/fl/index.jsp").forward(request,response);
}
else{
request.setAttribute("message","系统维护中!");
request.getRequestDispatcher("admin/fl/index.jsp").forward(request,response);
}
}
else if(method.equals("addxl")){//增加学历分类************代码均有注释**************
String mc=request.getParameter("mc");
int flag=cBean.comUp("insert into xl(mc)values('"+mc+"')");
if(flag==Constant.SUCCESS){
request.setAttribute("message","操作成功!");
request.getRequestDispatcher("admin/xl/index.jsp").forward(request,response);
}
else{
request.setAttribute("message","系统维护中!");
request.getRequestDispatcher("admin/xl/index.jsp").forward(request,response);
}
}
else if(method.equals("delxl")){//删除学历分类
String id=request.getParameter("id");
int flag=cBean.comUp("delete from xl where id='"+id+"'");
if(flag==Constant.SUCCESS){
request.setAttribute("message","操作成功!");
request.getRequestDispatcher("admin/xl/index.jsp").forward(request,response);
}
else{
request.setAttribute("message","系统维护中!");
request.getRequestDispatcher("admin/xl/index.jsp").forward(request,response);
}
}
else if(method.equals("addxx")){//增加学校分类************代码均有注释**************
String mc=request.getParameter("mc");
int flag=cBean.comUp("insert into xx(mc)values('"+mc+"')");
if(flag==Constant.SUCCESS){
request.setAttribute("message","操作成功!");
request.getRequestDispatcher("admin/xx/index.jsp").forward(request,response);
}
else{
request.setAttribute("message","系统维护中!");
request.getRequestDispatcher("admin/xx/index.jsp").forward(request,response);
}
}
else if(method.equals("delxx")){//删除学校分类
String id=request.getParameter("id");
int flag=cBean.comUp("delete from xx where id='"+id+"'");
if(flag==Constant.SUCCESS){
request.setAttribute("message","操作成功!");
request.getRequestDispatcher("admin/xx/index.jsp").forward(request,response);
}
else{
request.setAttribute("message","系统维护中!");
request.getRequestDispatcher("admin/xx/index.jsp").forward(request,response);
}
}
else if(method.equals("addqj")){//请假信息管理
//String ygbh="";String mc="";String jb="";String fd="";String jj="";String kc="";String sj="";String bz="";
String yg=request.getParameter("yg");
String nian=request.getParameter("nian");
String yue=request.getParameter("yue");
String ri=request.getParameter("ri");
String lx=request.getParameter("lx");
String kc=request.getParameter("kc");
String bz=request.getParameter("bz");
int flag=cBean.comUp("insert into qj(yg,nian,yue,ri,lx,kc,bz)values('"+yg+"','"+nian+"','"+yue+"','"+ri+"','"+lx+"','"+kc+"','"+bz+"')");
if(flag==Constant.SUCCESS){
request.setAttribute("message","操作成功!");
request.getRequestDispatcher("admin/qj/index.jsp").forward(request,response);
}
else{
request.setAttribute("message","系统维护中!");
request.getRequestDispatcher("admin/qj/index.jsp").forward(request,response);
}
}
else if(method.equals("upqj")){//修改请假信息
String id=request.getParameter("id");
String yg=request.getParameter("yg");
String nian=request.getParameter("nian");
String yue=request.getParameter("yue");
String ri=request.getParameter("ri");
String lx=request.getParameter("lx");
String kc=request.getParameter("kc");
String bz=request.getParameter("bz");
int flag=cBean.comUp("update qj set yg='"+yg+"',nian='"+nian+"',yue='"+yue+"',ri='"+ri+"',lx='"+lx+"',kc='"+kc+"',bz='"+bz+"',nian='"+nian+"',yue='"+yue+"'where id='"+id+"'");
if(flag==Constant.SUCCESS){
request.setAttribute("message","操作成功!");
request.getRequestDispatcher("admin/qj/index.jsp").forward(request,response);
}
else{
request.setAttribute("message","系统维护中!");
request.getRequestDispatcher("admin/qj/index.jsp").forward(request,response);
}
}
else if(method.equals("delqj")){//删除请假信息
String id=request.getParameter("id");
int flag=cBean.comUp("delete from qj where id='"+id+"'");
if(flag==Constant.SUCCESS){
request.setAttribute("message","操作成功!");
request.getRequestDispatcher("admin/qj/index.jsp").forward(request,response);
}
else{
request.setAttribute("message","系统维护中!");
request.getRequestDispatcher("admin/qj/index.jsp").forward(request,response);
}
}
else if(method.equals("addgz")){//信息管理
String yg=request.getParameter("yg");
String nian=request.getParameter("nian");
String yue=request.getParameter("yue");
String jb=request.getParameter("jb");
String kc=request.getParameter("kc");
String jj=request.getParameter("jj");
String jx=request.getParameter("jx");
String bx=request.getParameter("bx");
float heji=Float.parseFloat(jb)-Float.parseFloat(kc)+Float.parseFloat(jj)+Float.parseFloat(jx)-Float.parseFloat(bx);
String str=cBean.getString("select id from gz where yg='"+yg+"'and nian='"+nian+"'and yue='"+yue+"'");
if(str==null){
int flag=cBean.comUp("insert into gz(yg,nian,yue,jb,kc,jj,jx,bx,hj)values('"+yg+"','"+nian+"','"+yue+"','"+jb+"','"+kc+"','"+jj+"','"+jx+"','"+bx+"','"+heji+"')");
if(flag==Constant.SUCCESS){
request.setAttribute("message","操作成功!");
request.getRequestDispatcher("admin/gz/index.jsp").forward(request,response);
}
else{
request.setAttribute("message","系统维护中!");
request.getRequestDispatcher("admin/gz/index.jsp").forward(request,response);
}
}
else{
request.setAttribute("message","该月份已经发过工资!");
request.getRequestDispatcher("admin/gz/index.jsp").forward(request,response);
}
}
else if(method.equals("delgz")){//删除加班信息
String id=request.getParameter("id");
int flag=cBean.comUp("delete from gz where id='"+id+"'");
if(flag==Constant.SUCCESS){
request.setAttribute("message","操作成功!");
request.getRequestDispatcher("admin/gz/index.jsp").forward(request,response);
}
else{
request.setAttribute("message","系统维护中!");
request.getRequestDispatcher("admin/gz/index.jsp").forward(request,response);
}
}
}
/**
*Initialization of the servlet.<br>
*
* throws ServletException if an error occure
*/
public void init()throws ServletException{
//Put your code here
}
}package com.bean;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
import com.util.Constant;
import com.util.DBO;
public class ComBean{
private List list;
private ResultSet rs=null;
private int EVERYPAGENUM=2;
private int count=-1;
private int qq=0;
//声明时间变量
String date1=new SimpleDateFormat("yyyy-MM-dd").format(Calendar.getInstance().getTime());
String date=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(Calendar.getInstance().getTime());
//分页查询
public void setEVERYPAGENUM(int EVERYPAGENUM){
this.EVERYPAGENUM=EVERYPAGENUM;
}
public int getMessageCount(String sql){//得到信息总数
DBO dbo=new DBO();
dbo.open();
try{
rs=dbo.executeQuery(sql);
rs.next();
count=rs.getInt(1);
return count;
}catch(SQLException ex){
ex.printStackTrace();
return-1;
}finally{
dbo.close();
}
}
public int getPageCount(){//得到共多少页(根据每页要显示几条信息)
if(count%EVERYPAGENUM==0){
return count/EVERYPAGENUM;
}else{
return count/EVERYPAGENUM+1;
}
}
public List getMessage(int page,String sql2,int rr){//得到每页要显示的信息
DBO dbo=new DBO();
dbo.open();
List list=new ArrayList();
try{
rs=dbo.executeQuery(sql2);
for(int i=0;i<(page-1)*EVERYPAGENUM;i++){
rs.next();
}
for(int t=0;t<EVERYPAGENUM;t++){
if(rs.next()){
qq++;
List list2=new ArrayList();
for(int cc=1;cc<=rr;cc++){
list2.add(rs.getString(cc));
}
list.add(list2);
}else{
break;//减少空循环的时间
}
}
return list;
}catch(SQLException ex){
ex.printStackTrace();
return null;
}finally{
dbo.close();
}
}
public int comUp(String sql){
DBO dbo=new DBO();
dbo.open();
try{
int i=dbo.executeUpdate(sql);
if(i==1){
return Constant.SUCCESS;
}
else{
return Constant.SYSTEM_ERROR;
}
}catch(Exception e){
e.printStackTrace();
return Constant.SYSTEM_ERROR;
}finally{
dbo.close();
}
}
public List getCom(String sql,int row){
DBO dbo=new DBO();
list=new ArrayList();
dbo.open();
try{
rs=dbo.executeQuery(sql);
while(rs.next()){
List list2=new ArrayList();
for(int i=1;i<=row;i++){
list2.add(rs.getString(i));
}
list.add(list2);
}
return list;
}catch(Exception e){
e.printStackTrace();
return list;
}finally{
dbo.close();
}
}
public List get1Com(String sql,int row){
DBO dbo=new DBO();
list=new ArrayList();
dbo.open();
try{
rs=dbo.executeQuery(sql);
if(rs.next()){
for(int i=1;i<=row;i++){
list.add(rs.getString(i));
}
}
return list;
}catch(Exception e){
e.printStackTrace();
return list;
}finally{
dbo.close();
}
}
public String getString(String sql){
DBO dbo=new DBO();
list=new ArrayList();
dbo.open();
try{
rs=dbo.executeQuery(sql);
if(rs.next())
return rs.getString(1);
else return null;
}catch(Exception e){
e.printStackTrace();
return null;
}finally{
dbo.close();
}
}
public int getCount(String sql){
DBO dbo=new DBO();
dbo.open();
try{
rs=dbo.executeQuery(sql);
rs.next();
return rs.getInt(1);
}catch(Exception e){
e.printStackTrace();
return 0;
}finally{
dbo.close();
}
}
public float getFloat(String sql){
DBO dbo=new DBO();
dbo.open();
try{
rs=dbo.executeQuery(sql);
rs.next();
return rs.getInt(1);
}catch(Exception e){
e.printStackTrace();
return 0;
}finally{
dbo.close();
}
}
}package com.util;
/**
*验证码生成类
*/
import java.util.Random;
public class CheckCode{
public String getCheckCode(){
Random random=new Random();
String sRand="";
for(int i=0;i<4;i++){
String rand=String.valueOf(random.nextInt(10));
sRand+=rand;
}
return sRand;
}
}package com.util;
/**
*常用方法类
*
*
*/
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public final class Common{
////////////字符串HTML转换
public static String turn(String str){
while(str.indexOf("n")!=-1){
str=str.substring(0,str.indexOf("n"))+"<br>"
+str.substring(str.indexOf("n")+1);
}
while(str.indexOf("")!=-1){
str=str.substring(0,str.indexOf(""))+" "
+str.substring(str.indexOf("")+1);
}
return str;
}
/////////////返回日期当前日期传入0一年之前传入-1三年后传入3
public static String getDate(int num){
SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd");
Calendar c=Calendar.getInstance();
c.add(Calendar.YEAR,num);
return df.format(c.getTime());
}
/////////////数据库输出字符串的过滤
public static String SQLStr(String str){
if(str!=null&&str.length()>1&&str.substring(0,1).equals("?")){
str=str.substring(1);
}
if(str==null||str.equals("")||str.equals("")){
str=" ";
}
return str;
}
/////////////过滤空格
public static String PageStr(String str){
if(str==null||str.trim().equals("")||str.equals("")||str.equals("null")){
str="";
}
str=str.trim();
return str;
}
/////////////格式化日期
public static String formatRZ(String oldDate){
SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd");
Date Date=new Date(oldDate);
return df.format(Date);
}
////////////汉化
public static String toChineseAndTrim(String str){
if(str==null){
str="";
}
try{
byte b[]=str.getBytes("iso-8859-1");
str=new String(b);
str=str.trim();
}catch(Exception e){
e.printStackTrace();
}
return str;
}
}package com.util;
import java.sql.*;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.activation.DataSource;
import java.sql.*;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.naming.Context;
import javax.naming.InitialContext;
public class DBO{
private Connection conn;
private Statement stmt;
private DataSource ds;
public DBO()
{
}
/**
打开数据库
*/
public void open()
{
try
{
Class.forName("com.mysql.jdbc.Driver");
conn=DriverManager.getConnection("jdbc:mysql://localhost/rlzy","root","123456");
stmt=conn.createStatement();
System.out.println("打开数据库连接");
}
catch(Exception ex)
{
System.err.println("打开数据库时出错:"+ex.getMessage());
}
}
/**
关闭数据库,将连接返还给连接池
*/
public void close()
{
try
{
//connMgr.freeConnection("java",conn);
conn.close();
System.out.println("释放连接");
}
catch(SQLException ex)
{
System.err.println("返还连接池出错:"+ex.getMessage());
}
}
/**
执行查询
*/
public ResultSet executeQuery(String sql)throws SQLException
{
ResultSet rs=null;
rs=stmt.executeQuery(sql);
System.out.println("执行查询");
return rs;
}
/**
执行增删改
*/
public int executeUpdate(String sql)throws SQLException
{
int ret=0;
ret=stmt.executeUpdate(sql);
System.out.println("执行增删改");
return ret;
}
/**
将SQL语句加入到批处理
*/
public void addBatch(String sql)throws SQLException
{
stmt.addBatch(sql);
}
/**
执行批处理
*/
public int[]executeBatch()throws SQLException
{
boolean isAuto=conn.getAutoCommit();
conn.setAutoCommit(false);
int[]updateCounts=stmt.executeBatch();
//conn.commit();
//conn.setAutoCommit(isAuto);
//conn.setAutoCommit(true);
return updateCounts;
}
public boolean getAutoCommit()throws SQLException
{
return conn.getAutoCommit();
}
public void setAutoCommit(boolean auto)throws SQLException
{
conn.setAutoCommit(auto);
}
public void commit()throws SQLException
下载提示:
1、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“文章版权申述”(推荐),也可以打举报电话:18735597641(电话支持时间:9:00-18:30)。
2、网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
3、本站所有内容均由合作方或网友投稿,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务。
原创文章,作者:写文章小能手,如若转载,请注明出处:https://www.447766.cn/chachong/14781.html,