版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、毕业设计(论文)毕业设计(论文)第第 1 1 页页 共共 4444 页页毕业设计(论文)毕业设计(论文)题题 目:目: 企业员工信息管理系统的设计与实现企业员工信息管理系统的设计与实现 系系 部:部: 计算机系 专专 业:业: 计算机应用与维护 学学 号:号: 学生姓名:学生姓名: 指导教师:指导教师: 职职 称:称: 二二 oo 年年 月月 日日毕业设计(论文)毕业设计(论文)第第 2 2 页页 共共 4444 页页毕业论文(设计)任务书毕业论文(设计)任务书课题名称:课题名称:_ _ 企业员工管理系统企业员工管理系统_系系 部:部:_ _ 计算机系_专专 业:业:_ _ 计算机应用与维护_
2、姓姓 名:名:_ _ _学学 号:号:_ _ _ _指导教师:指导教师:_ _ _ 二二 oo 六六 年年 六六 月月 一一 日日毕业设计(论文)毕业设计(论文)第第 3 3 页页 共共 4444 页页一、毕业论文(设计)的目的与要求:一、毕业论文(设计)的目的与要求:企业员工管理系统(pms(personnel-manager-system),它是用来对企业工厂等员工进行管理的一个桌面应用程序,通过该系统使用者可以轻松对员工的资料进行输入、查询、修改,使得员工资料的管理更加方便。本文旨在阐述如何用 java 语言开发基于桌面操作系统以及微软数据库(microsoft office acces
3、s)平台的小型管理系统,其重点是如何连接数据库以及如何对数据库进行操作。二、毕业论文(设计)的内容:二、毕业论文(设计)的内容:1.企业员工管理系统的源代码设计2.企业员工管理系统调试3.企业员工管理系统的实现4.课题实现环境windows xp jdk 1.5.0_1intellij idea 5.0三、毕业论文(设计)进程的安排三、毕业论文(设计)进程的安排毕业设计(论文)毕业设计(论文)第第 4 4 页页 共共 4444 页页序序 号号论文(设计)各阶段名称论文(设计)各阶段名称日日 期期备备 注注1 1课题讨论,需求分析(3.1-3.5)2 2课题的整体策划和构思(3.63.10)3
4、3课题所需资料的采集(3.113.15)4 4课题的实现与调试(3.164.30)5 5撰写论文(5.1 6.1)6 6论文的答辩(6 月初)四、任务执行日期:四、任务执行日期:自自_ _年年_ _ _ _月月_ _ 日起,至日起,至_ _ _ _年年_ _ _ _月月_ _ _ _日止。日止。 学学 生(签字)生(签字)_ 指导教师(签字)指导教师(签字)_ 系系 主主 任(签字)任(签字)_毕业设计(论文)毕业设计(论文)第第 5 5 页页 共共 4444 页页摘要摘要企业员工管理系统(pms(personnel-manager-system),它是用来对企业工厂等员工进行管理的一个桌面应
5、用程序,通过该系统使用者可以轻松对员工的资料进行输入、查询、修改,使得员工资料的管理更加方便。本文旨在阐述如何用 java 语言开发基于桌面操作系统以及微软数据库(microsoft office access)平台的小型管理系统,其重点是如何连接数据库以及如何对数据库进行操作。关键词:关键词: java; 面向对象; microsoft office access;jdbc;dbms毕业设计(论文)毕业设计(论文)第第 6 6 页页 共共 4444 页页目目 录录1 引言.31.1java 开发前奏.31.2java 虚拟机及 java 跨平台原理.42 系统分析.62.1 可行性分析.62
6、.2 需求分析.73 统设计.83.1 结构设计.83.2 详细设计.124 讨论.294.1 存在的问题及改进思想.295 结束语.306 致谢.317 参考文献.318 附录:程序 api 文档.33毕业设计(论文)毕业设计(论文)第第 7 7 页页 共共 4444 页页1 1 引言引言1.1 java 开发前奏sun 公司在 20 世纪 90 年代初开发电子消费产品时觉得 c 和 c+有许多不足,因而着手这一新型的编程语言,并于 1995 年正式推出 java。java用于 www 后,因其在 www 上支持各种动态和交互效果而迅速闻名。此后,各种浏览器竞相支持 java,各种 java
7、 应用也逐渐热门。java 是一种简单易用、完全面向对象、有平台无关性、安全可靠的、主要面向 internet 的开发工具。自从 1995 年正式问世以来,它的快速发展已经让整个 web 世界发生翻天覆地的变化。随着 java servlet 的推出,java 在电子商务方面开始崭露头角,最新的 java server page(jsp)技术的推出,更让 java 成为基于 web 应用程序的首选开发工具。 java 是第一套允许使用者将应用程序通过 internet 从远端服务器传输到本地计算机上并执行的一种语言,是一种应用程序提供者不需要知道使用者的计算机硬件与软件环境的语言。比尔盖茨曾经
8、说过:“java 是最卓越的程序设计语言” 。 相比其他语言,java 技术平台具有明显的优越性。从最初建造 java平台开始,就考虑了安全性的问题,即其安全性是建立在 java 平台的内核中的。其他的语言只是在软件开发时才由用户自行处理其安全问题,难免会有安全漏洞。其次对于程序员来说,java 比其他人和一门语言都好用,原因在于:java 有自动回收垃圾的功能,java 增加了对象和变量的强制类型检查,java 还取消了指针。 目前,java 技术的架构包括以下三个方面: j2ee(java 2 platform enterprise edition) 企业版,是以企业毕业设计(论文)毕业设
9、计(论文)第第 8 8 页页 共共 4444 页页为环境而开发应用程序的解决方案。目前已经成为开发商创建电子商务的事实标准。 j2se(java 2 platform standard edition) 标准版,是桌面开发和低端商务应用的解决方案。提供 corba 标准的 orb 技术,结合 java 的rmi 支持分布式交互操作环境。 j2me(java 2 platform micro edition) 小型版,是致力于消费产品和嵌入式设备的最佳解决方案。提供 http 高级 internet 协议,使移动电话能以 client/server 方式直接访问 internet 全部信息,不同
10、的client 访问不同的文件,此外还能访问本地存储区,提供高效率的无线交流。java 技术又有以下广泛的内涵:首先,它是一门编程语言,java 能够创建所有其他传统语言能编写的应用程序,java 能够写独立的应用程序,运行在装有 java 虚拟机的操作系统上。java 编写的程序经常用在 www 环境中(比如 applet、servlet 等) ,applet 在浏览器中执行不需要操作系统 jvm 的支持。 其次,java 还是一个开发环境,java 技术包含一系列的工具:编译器,解释器、文档生成工具、打包工具等。另外由 java 2 sdk 提供的jre(java runtime envi
11、ronment)还包括一个完整的 java 类集合,比如基本语言类、gui 控件类等。 最后,java 也是一个运行环境,我们可以从 sun 公司提供的 java 2 sdk 中来搭建运行环境,而这一切都是免费的。1.2java 虚拟机及 java 跨平台原理java 虚拟机(jvm)是可运行 java 字节码的假想计算机,java 的跨平毕业设计(论文)毕业设计(论文)第第 9 9 页页 共共 4444 页页台是相对于其他语言而言的,与其他程序相比,执行的中间过程只是多了一个 java 虚拟机,如下图 1-2 所示:windows 下的 c 语言编译过程 java 语言编译过程图 1-2 c
12、 与 java 的编译过程 由图 1.2 可见,只要实现了特种平台下的解释程序,java 字节码就能通过解释程序在该平台下运行,这是 java 跨平台的根本。当前并不是在所有的平台下都有相应的 java 解释器程序,这也是 java 并不是在所有的平台下都能运行的原因,它只能在已实现了 java 解释器程序的平台下运行。 java 兼顾解释性与编译性语言的特点,java 源文件转换成 class 字节码文件的过程是编译型的, class 在 操作系统上运行的过程是解释型的,java 虚拟机充当了解释器的作用。c 原程序(扩展名为.c)windows 可执行文件(扩展名为.exe)c 编译程序w
13、indows 操作系统执行java 原程序(扩展名为.java)java 编译程序java 字节码文件(扩展名为.class)执行java 虚拟机windows 下的 java 字节码解释程序linux 下的java 字节码解释程序能解释java 字节码的 cpu执行linux 系统执行其他系统执行windows 系统毕业设计(论文)毕业设计(论文)第第 1010 页页 共共 4444 页页2 2 系统分析系统分析2.1 可行性分析2.1.1 技术可行性从目前市场上的操作系统和管理类的软件来看,对于比较简单的小型管理系统,一般使用 microsoft access 数据库就已经足够了,它需要一
14、个良好的操作界面,方便、简单的操作过程是很有必要的。java 无疑是开发图形界面的最佳选择,丰富的类库提供了足够的控件供开发人员使用,使得界面设计更是灵活多变,能够设计出更多、更好的用户界面。在 java 与数据库连接方面,使用 jdbc 可以很容易的将 sql 语句传到任何关系型数据库中,java 与 jdbc 的结合,使得程序员可以只写一次数据库应用软件后就可以在任何一种数据库系统上运行。由于 java 语言具有健壮性、安全、易使用、易理解和自动下载到网络等优点,因此它是数据库应用的一个极好的基础语言。jdbc 又实现 java 应用程序与各种不同数据库的对话,扩充了 java 应用程序的
15、应用范围。java 访问数据库有两种情况,即 applet 和 application,但是他们访问数据库的步骤大致相同,以下 java 访问 access 数据库的工作原理图 2-1-1.1 java 访问数据库的工作原理图java application 的最广泛的用途是应用于公司或企业内部网上,所以数据库java 应用程序jdbc 应用编程接口jdbc 驱动程序管理器jdbc-odbc 桥接驱动程序odbc毕业设计(论文)毕业设计(论文)第第 1111 页页 共共 4444 页页可以称为商业网的应用。这些 applications 可以访问本地或是任何网络上的共享数据库服务器,当然它也能
16、通过 internet 来访问数据库,图 2-2 表示了 java application 访问网络数据库的情况。2.1.2 经济可行性该管理系统比较小,对机器的配置等要求比较低,界面友好,程序简单易用,容易上手,操作者不需要对计算机数据库等有很深的了解、认识。2.2 需求分析2.2.1 功能要求从一开始,我的目标就是建立一个企业人事管理系统,功能不是很齐全,主要实现以下几项功能:用户登录,添加、修改、删除注册用户信息;添加新员工信息,员工人事调动信息的录入,查找、修改员工信息;重新初始化数据库等。2.2.2 运行要求本程序的建议运行环境为:windows 9x/2000/xp + jre 5
17、.0 update 6java 应用程序jdbc 驱动程序(可允许的下载)本地硬盘资源或其他资源客户端lan 或 internet数据库服务器图 2-1-1.1 application 访问网络数据库据库毕业设计(论文)毕业设计(论文)第第 1212 页页 共共 4444 页页3 3 系统设计系统设计3.1 结构设计3.1.1 主界面设计良好的用户界面对一个应用程序有着非常重要的作用,通过它,程序的用户可以知道该如何进行操作,它直接与用户打交道,要简单明了。 主程序界面设计:应当有一个菜单栏,不同的功能在不同的菜单中,用户可以随时找到程序将所有的功能都集成到鼠标右键中,用户可以在不使用菜单的情
18、况下快速在不同的窗口之间切换3.1.2 其它窗口设计 管理员登陆数据库的直接管理人员被称为管理员,能对学生的资料进行修改,只有管理员登陆正确登陆后用户才能对数据库进行修改。输入用户账号、密码选择用户的类型,这里的类型只有管理员和普通用户两种图图 3-1-1.1毕业设计(论文)毕业设计(论文)第第 1313 页页 共共 4444 页页 管理用户部分管理用户包括三两个方面:添加新用户资料,包括用户的账号、密码以及注册的用户的类型。删除用户,删除已经存在的用户,从账号栏选择要删除的账户。修改用户,管理员可以修改登陆用户的密码,以及用户的权限等。图图 3-1-2-2.13-
19、1-2-.3 新员工资料输入部分企业中有新员工加入的时候我们应当添加员工的资料,程序自动根据数据库中已有的员工的编号的自动为新员工编号,员工的这个编号在数据库中是唯一的,自始至终都是不可以更改的。图图 3-1-2-1毕业设计(论文)毕业设计(论文)第第 1414 页页 共共 4444 页页图图 3-1-2-33-1-2- 人事调动管理部分当员工因为升职、调动、退休等原因离开公司的时候,为了能掌握员职工所有动向以及在以后能及时查找到该员工,该部分用于记录员工的动向。图图 3-1-2-43-1-2- 员工信息查找修改部分毕业设计(论文)毕业设计(论文
20、)第第 1515 页页 共共 4444 页页员工加入公司后其个人资料难免会发生改变,面对这种情况我们需要及时地对员工的信息进行更改,这个更改工程我们应该能对员工的所有资料能一幕了然,然后再根据需求进行更改;要查找员工的调动信息,要直观的列出要查找的员工的每次调动的时间和最终去向,以方便能够及时找到该员工。图图 3-1-2-53-1-2-53.1.3 数据库的组成数据库是该系统的核心,它是存储企业员工信息资料以及企业部门资料的地方,本程序的数据库包括以下几个方面:对登陆用户管理员信息存储的数据库,这里面应当包括登陆用户的账号、密码以及该用户对软件操作的权限等信息。对员工信息存储的数据库,这里面应
21、当包括员工基本资料、员工的调动情况等资料。存放基本部门信息的数据库,这些基本的部门信息在程序启动或窗毕业设计(论文)毕业设计(论文)第第 1616 页页 共共 4444 页页口被打开的时候可能会用到他们程序的数据库存放在该程序的当前目录下,该数据库一共包括有六两个程序要用到的表:system用于存放该程序登陆用户的详细资料worker用于存放员工学生的基本资料change用于存放员工人事调动信息department用于存储各个部门信息duty用于存储所有员工职务信息education用于存储学历信息当程序为执行的时候数据库中只有 department、duty、education 这三个表,其
22、他三个表在程序第一次运行的时候会由程序自动创建。具体数据库图(如图 3-1-3 所示) 图 3-1-3 数据库表3.2 详细设计3.2.1 流程图与功能图 系统流程图毕业设计(论文)毕业设计(论文)第第 1717 页页 共共 4444 页页毕业设计(论文)毕业设计(论文)第第 1818 页页 共共 4444 页页程序启动加载 config.xml 设置判断是否是第一次运行初始化数据库初始化管理员用户登陆否是账号是否正确是连接数据库登陆次数3否否程序退出是是否管理员开放部分功能否开放所有功能程序主界面,功能选择是用户管理员工管理用户退出添加删除修改用户资料是否继续是否添加新员工员工
23、人事变动资料查询修改是否继续是否是否退出否是修改 config.xml 设置关闭数据库初始化数据库初始化系统表设置默认管理员程序退出图 3-2-1-2 企业人事管理系统系统流程图毕业设计(论文)毕业设计(论文)第第 1919 页页 共共 4444 页页 功能图图 3-2-1-2 企业人事管理系统功能图3.2.2 数据库的设计创建管理员工信息资料的应用程序,到底怎样才能有效地管理学生的数据毫无疑问,数据库在其中扮演着相当重要的作用。 创建数据库在程序的当前目录下创建一个名为 manager 的 microsoft access 数据库,并将其的管理员密码设置为 123
24、。 创建数据库表在 microsoft access 数据库中建立以下几个数据表:创建用于存储基本信息的表,表的结构均如下表 3-2-2-2.1 所示:系统功能管理用户部分用户登陆管理员工资料用户退出添加新用户修改用户资料输入新员工资料输入员工人事调动资料查找修改员工资料删除用户资料初始化数据库创建数据库表初始化数据库信息毕业设计(论文)毕业设计(论文)第第 2020 页页 共共 4444 页页数据元素标识类型id文本des文本表 3-2-2-2.1基本信息表一共有三个,表名分别为:department、duty、education。id 指各个表中数据的编号,des 分别指部门
25、名称、职务名称、学历名称等,里面的内容是预先设置好的。 另外系统自动创建的三个表分别如下:1.员工信息表,表名为 worker,其结构如表 3-2-2-2.2 所示。数据元素标识数据元素名称字段大小类型idw员工学生编号50文本namew员工姓名20文本sexw员工性别5文本birthw员工生日30文本deptw员工系部10文本dutyw员工职务10文本eduw员工教育水平10文本professw员工专业15文本addrw员工学生住址100文本telew员工电话25文本emailw员工电子邮件60文本表 3-2-2-2.22.员工调动信息表,表名为 change,其结构如表 3-2-2-2.3
26、 所示。毕业设计(论文)毕业设计(论文)第第 2121 页页 共共 4444 页页数据元素标识数据元素名称字段大小类型idw员工学生编号50文本namew员工姓名20文本timew员工调动时间50文本containw员工调动内容50文本demow调动原因描述100文本表 3-2-2-2.33.登陆用户员工调动信息表,表名为 system,其结构如表 3-2-2-2.432 所示。数据元素标识数据元素名称字段大小类型username员工学生编号30文本userpasswd员工姓名50文本usertype员工调动时间1050文本表 3-2-2- 使用 jdbc-odbc 桥访问 a
27、ccess 数据库使用 jdbc-odbc 桥的方式访问数据库 jdbc-odbc 将 java 通过 jdbc 发出的数据库操作转化为 odbc 操作。首先要创建于数据库的连接,然后再打开数据库,访问数据库的各个需要访问的表,从表中取出需要的资料或者更新数据库等,当对数据库的操作完成最后再关闭与数据库的连接。使用 jdbc 访问数据库需要包括connection、recordset、statement、resultsetmetadata 七个类。connection 对象是连接数据库的基础,它管理程序与数据库建立连接;statement 对象管理对数据库操作,一切对数据库的查询、更改等操作都
28、基毕业设计(论文)毕业设计(论文)第第 2222 页页 共共 4444 页页于这个类;recordset 对象是管理数据库记录的对象,我们可以从这个对象中取出我们需要的查询后得数据。使用以下方法来连接数据库:*在连接数据库前我们首先要得到access 数据库文件的绝对路径,我们可以使用file 类来实现:file mdb = new file(students.mdb);mdbpath = mdb.getabsolutepath();/得到 students.mdb 的绝对路径mdbpath=mdbpath.replace(,/);*将数据库的绝对路径加到数据源路径中: mdburl=jdbc
29、:odbc: driver=microsoft access driver (*.mdb);dbq=+mdbpath;*加载 jdbc-odbc 桥连接驱动:class.forname(sun.jdbc.odbc.jdbcodbcdriver);* 创建与数据库的连接:conn= drivermanager.getconnection(mdburl,); 3.2.4 程序的编写过程及功能实现工欲善其事,必先利其器。本次编写这个企业人事管理系统,主要是使用了 jetbrains s.r.o 公司开发的 intellij idea 436 这个工具。intellij idea 是一个
30、智能化的开发工具,在网上被称为 java 最好的开发工具,它在所有 java 开发工具中对 java 源代码进行语法检查的智能提示等方面都是最优秀的。其运行后的界面如下图 3-2-4 所示:毕业设计(论文)毕业设计(论文)第第 2323 页页 共共 4444 页页图 3-2-4 程序编写环境 程序运行界面为了使用户界面更友好,所以整个程序使用了大量的 java swing 组件。如图图 3-2-4-1 程序运行界面毕业设计(论文)毕业设计(论文)第第 2424 页页 共共 4444 页页连接数据库类的编写连接数据库类的编写数据库的连接方面使用的是 ma
31、in 类中的 connectdatabase()方法,这个类实现与数据库的连接。 构造方法,加载驱动并创建与数据库的连接public connectiondatabase() file mdb = new file(students.mdb); mdbpath = mdb.getabsolutepath(); mdbpath=mdbpath.replace(,/); mdburl=jdbc:odbc:driver=microsoft access driver (*.mdb);dbq=+mdbpath; try class.forname(sun.jdbc.odbc.jdbcodbcdrive
32、r); catch (classnotfoundexception e) e.printstacktrace(); try conn= drivermanager.getconnection(mdburl,); catch (sqlexception e) e.printstacktrace(); 调用 initproperties()initproperties()来来加载系统属性配置文件 config.xml,并根据毕业设计(论文)毕业设计(论文)第第 2525 页页 共共 4444 页页里面的内容来确定该方法内调用的 initdatabase()方法的任务。try prop.loadfr
33、omxml(new fileinputstream(config.xml); system.out.println(成功加载系统属性文件 config.xml !); catch (ioexception e) e.printstacktrace();joptionpane.showmessagedialog(mainframe,找不到系统必须的config.xml 文件!,找不到文件,joptionpane.error_message); eturn false; 系统配置文件 config.xml programe comment :00create table worker(idw va
34、rchar(50) not null,namew varchar(20),sexw varchar(5),birthw varchar(30),deptw varchar(10),dutyw varchar(10),eduw varchar(10),professw varchar(15),addrw varchar(100),telew varchar(25),emailw varchar(60)毕业设计(论文)毕业设计(论文)第第 2626 页页 共共 4444 页页create table change(idw varchar(50) not null,namew varchar(20)
35、,timew varchar(50),containw varchar(50),demow varchar(100)insert into system(username,userpasswd,usertype) values(admin,21232f297a57a5a743894a0e4a801fc3,管理员)create table system(username varchar(30) not null,userpasswd varchar(50) not null,usertype varchar(10) not null)该文件中存储了三个程序运行时初始化数据库的时候使用的 sql
36、语句,程序需要初始化数据库的时候就将从该文件中取出需要语句。另外first_or_not 是指程序运行的次数,initdatabase 指初始数据库的次数,这两个变量的初始值都是 0,程序运行时先判断这两个值,如果都是 0 说明程序是第一次运行,程序会自行初始化数据库,创建系统必须的表。 管理员登陆,检测用户账号密码是否正确while(rs.next() try name=rs.getstring(username);毕业设计(论文)毕业设计(论文)第第 2727 页页 共共 4444 页页 password=rs.getstring(userpasswd); type=rs.getstrin
37、g(usertype);if(username.equals(name)&userpasswd.equals(password)&usertype.equals(type) ismanager=true; break; catch (sqlexception e) e.printstacktrace(); 添加系统管理员,使用 statement 对象对数据库表进行操作,该对象实现对表记录的更新、插入、删除等操作。在添加用户前要检查用户名是否存在。源代码:try if(statetemp!=null) int line = statetemp.executeupdate(insert into
38、 system (username,userpasswd,usertype) values ( + info0 +,+ encode.md5(info2) +,+info4+); if(line=1) system.out.println(成功添加账号为:+info0+ 新用户!);毕业设计(论文)毕业设计(论文)第第 2828 页页 共共 4444 页页joptionpane.showmessagedialog(managerjinternalframe,成功添加账号为:+info0+ 新用户!,提示, joptionpane.information_message); catch (sql
39、exception e1) /例外处理 管理登陆用户的账号密码,包括更新用户密码和删除用户* 更新用户密码try if(statetemp!=null) int line = statetemp.executeupdate(update system set userpasswd=+ encode.md5(info2) +,usertype=+ info4 + + where username=+ info0 +); if(line=1) system.out.println(成功更新名为:+info0+ 的信息 !);joptionpane.showmessagedialog(manager
40、jinternalframe,成功更新名为:+info0+的信息!,提示,joptionpane.information_message); catch (sqlexception e1) /例外处理毕业设计(论文)毕业设计(论文)第第 2929 页页 共共 4444 页页* 删除用户try if(statetemp!=null) int line=statetemp.executeupdate(delete from system where username=+ info0 +); if(line=1) system.out.println(成功删除账号为:+info0+的用户!); jo
41、ptionpane.showmessagedialog(managerjinternalframe,成功删除账号为:+info0+的用户!,提示,joptionpane.information_message); catch (sqlexception e1) /例外处理 员工信息管理包括三部分,分别是输入新员工的基本资料、输入员工的调动信息、员工信息的查询修改。这三个方面的信息都分别放置在一个string 类型的数组中,这个数组分别从员工信息管理三部分相应的类方法中取得。* 输入新员工的基本资料,并存储倒数据库中,数据库的更新语句如下:更新 worker 表:int line = state
42、temp.executeupdate(insert into worker(idw,namew,sexw,birthw,deptw,dutyw,eduw,professw,addrw,telew,emailw) values( + newworker0 + , + + newworker1 + , 毕业设计(论文)毕业设计(论文)第第 3030 页页 共共 4444 页页+ + newworker2 + , + + newworker3 + , + + newworker4 + , + + newworker5 + , + + newworker6 + , + + newworker7 + ,
43、 + + newworker8 + , + + newworker9 + , + + newworker10 + ) );更新 change 表:line = statetemp.executeupdate(insert into change (idw,namew,timew,containw,demow) values(+ + newworker0 + , + + newworker1 + ,+ + newworker12 + , + + newworker11 +, + );这里的 newworker 数组是由 addnew 类中获得的,里面记录了所有新员工的信息。该类不但要更新 wor
44、ker 表,还要更新 change 表。* 输入员工的调动信息,与上面的输入新员工的基本资料相似,不同的是sql 语句 insert 的参数由 change 类中取得。该类实现了 caretlistener 接口,为 idtextfield 添加该事件,当里面的内容没改变一次就触发一次caretupdate()方法。当输入的员工编号存在的时候,程序将员工的信息取出并放在相应的组件当中。* 员工信息的查询修改,该方法同输入员工的调动信息相同,也实现了caretlistener 接口,其作用和输入员工的调动信息相同。该部分使用了jtable 组件,为了能及时更新 table 的显示,自己需要创建
45、mytablemodel类,该类继承了 abstracttablemodel 类,需要实现 abstracttablemodel类中所有未实现的方法。public class mytablemodel extends abstracttablemodel 毕业设计(论文)毕业设计(论文)第第 3131 页页 共共 4444 页页 private object p; private string n; public mytablemodel(string contains,string columnname) p = contains; n = columnname; public int ge
46、tcolumncount() return n.length; public int getrowcount() return p.length; public string getcolumnname(int col) return ncol; public object getvalueat(int row, int col) return prowcol; public class getcolumnclass(int c) return getvalueat(0, c).getclass(); public boolean iscelleditable(int rowindex, in
47、t columnindex) 毕业设计(论文)毕业设计(论文)第第 3232 页页 共共 4444 页页 return true; /* public void setvalueat(object value, int row, int col) prowcol = value; firetablecellupdated(row, col); */ 密码的安全性程序中注册的登录用户的密码不能以明文的形式存储,那样很不安全,所以数据库中存储的密码文件要是加密后的密文,这个程序里选择使用 md5加密用户密码。在 encode 类中实现 md5 方法。java 实现 md5 加密的代码
48、如下:public class encode public static string md5(string passwd) char hexchars = 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, a, b, c, d, e, f; try byte bytes = passwd.getbytes(); messagedigest md = messagedigest.getinstance(md5); md.update(bytes); bytes = md.digest(); int j = bytes.length; char chars = new charj *
49、2;毕业设计(论文)毕业设计(论文)第第 3333 页页 共共 4444 页页 int k = 0; for (byte b : bytes) charsk+ = hexcharsb 4 & 0 xf; charsk+ = hexcharsb & 0 xf; return new string(chars); catch (exception e) return null; 3.2. 5 错误处理程序运行后难免会有输入错误,程序中出错可以帮助我们很快的找到出错地点,程序中数据库方面的异常主要有 classnotfoundexception 和sqlexception,创建程序主界面方面则有只
50、exception,使用这些对象的printstacktrace()方法可以找到程序出错的地方和出错原因。毕业设计(论文)毕业设计(论文)第第 3434 页页 共共 4444 页页4 4 讨论讨论4.1 存在的问题及改进思想本程序的编写历时一个多月,在 windows xp jdk 1.5.0_1 平台上测试通过,基本上实现了预期的目的,但功能还很不完善。鉴于本人精力水平有限,时间仓促,错误与不足之处在所难免,以待后续开发中不断改进和完善。在后续开发中,准备从以下几方面着手:增加动态信息分布功能,允许员工通过网络查询自己的资料,并且进行确认。增强数据查询功能,在关键字查询的基础上增加分类查询。
51、总之,本程序编写不是一个终点,而是一个起点。java 在不断发展,它的强项并不是使用 j2se 来开发桌面应用程序,而更多的应用是使用 j2ee开发网络应用程序,尽管它在开发桌面程序上占有很多优势。java 博大精深,现在唯有不断学习和吸收,才能赶上时代的进步。毕业设计(论文)毕业设计(论文)第第 3535 页页 共共 4444 页页5 5 结束语结束语做什么事情都要有个好的开头,一个应用程序在开发之前的需求分析工作影响整个开发过程。从需求分析入手,做好各项准备工作程序各子功能的确定、数据库的设计等,然后选择开发环境、开发工具,一步一步,循序渐进,最终把一个好的企业人事管理系统展现在各位用户的
52、眼前。毕业设计(论文)毕业设计(论文)第第 3636 页页 共共 4444 页页6 6 致谢致谢我的毕业设计工作是在 xxx 老师指导下进行的。从选题、设计、编程、调试、撰写论文等环节,都是在 xxx 老师精心指导下完成。苗连强老师工作认真、治学严谨。在毕业设计期间,不仅使我学习到了知识,而且还得到了综合锻炼和提高。同时,也更加懂得了如何做一个合格的大学生去面对未来。在此,我十分感谢 xxx 老师的精心指导!同时我也感谢在三年中教过我的所有老师!感谢帮助我的所有同学!毕业设计(论文)毕业设计(论文)第第 3737 页页 共共 4444 页页7 7 参考文献1. 张孝祥 java 就业培训教程
53、清华大学出版社,20032. 侯捷 java 编程思想(第二版) 机械工业出版社 20023. 王路 j2se 核心 api 参考与实例 中国水利水电出版社,20024. 李东升 jdbc 数据库编程与 j2ee. 电子工业出版社,20045. 窦魏 java 软件开发(第二版) 人民邮电出版社,20046. 殷兆麟 java 网络编程. 国防工业出版社,20017. 林志扬 精通 java swing 程序设计 中国铁道出版社 2002毕业设计(论文)毕业设计(论文)第第 3838 页页 共共 4444 页页8 8 附录:程序附录:程序 apiapi 文档文档1 1、 packagepack
54、age dwldwl classclass addnewaddnewjava.lang.object dwl.addnewdwl.addnewpublic class addnewaddnew extends java.lang.object实现添加新员工的界面,并且可以获得员工的信息构造方法摘要构造方法摘要addnewaddnew(java.sql.connection conn) 初始化界面,并从数据库中取出需要的信息方法摘要方法摘要 java.lang.stringgetinformationgetinformation()得到要添加的新员工的信息 javax.swing.jpanelg
55、etpanelgetpanel()得到包含有组件的面板容器2 2、 packagepackage dwldwlclassclass changechangejava.lang.object dwl.changedwl.changepublic class changechange extends java.lang.object implements javax.swing.event.caretlistener, javax.swing.event.changelistener该类实现创建人事变动的窗口构造方法摘要构造方法摘要changechange(java.sql.connection
56、conn) 初始化界面,并从数据库中取出需要的信息方法摘要方法摘要 void caretupdatecaretupdate(javax.swing.event.caretevent e) 本类实现了 caretlistener 接口,该方法重写接口中为实现的 caretupdate()方法, 该方法用于查找员工信息 java.lang.stringgetchangeinfogetchangeinfo() 取得人事变更窗口中的所有的信息 javax.swing.jpanelgetpanelgetpanel() 得到含有组件的容器 void statechangedstatechanged(jav
57、ax.swing.event.changeevent e) 本类实现了 changelistener 接口,该方法重写接口中为实现的 statechanged()方法毕业设计(论文)毕业设计(论文)第第 3939 页页 共共 4444 页页3 3、 packagepackage dwldwlclassclass connectdbconnectdbjava.lang.object dwl.connectdbdwl.connectdbpublic class connectdbconnectdb extends java.lang.object该类实现连接数据库的界面构造方法摘要构造方法摘要co
58、nnectdbconnectdb() 方法摘要方法摘要 boolean chackloginchacklogin(java.lang.string useinfo, java.sql.connection conn) 该方法实现检查登陆用户帐号密码是否正确 java.lang.stringgetlogininfogetlogininfo() 得到登陆用户的资料private java.lang.stringgetnamegetname() 得到登陆用户的用户名 javax.swing.jpanelgetpanelgetpanel() 得到该类的窗口中组件的布局界面private java.la
59、ng.stringgetpasswordgetpassword() 得到登陆用户的密码private java.lang.stringgettypegettype() 用于获得登陆用户的类型4 4、 packagepackage dwldwlclassclass getdatagetdatajava.lang.object dwl.getdatadwl.getdatapublic class getdatagetdata extends java.lang.object该类用于为每个需要数据库中数据的窗口取出数据构造方法摘要构造方法摘要getdatagetdata() getdatagetda
60、ta(java.sql.connection conn)方法摘要方法摘要 java.lang.stringgetcolumnnamegetcolumnname() 得到 change 表的列名 java.lang.string getcontainsgetcontains(java.sql.resultset rschange) 把记录集中的内容转化为二维数组 intgetidgetid() 取得指定要添加的新员工的 id java.util.vector getsystemgetsystem(java.lang.string tablename) 毕业设计(论文)毕业设计(论文)第第 404
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 44830-2024酶联免疫试剂盒检测通则
- 2024年度虚拟现实设备研发、生产与采购合同
- 2024年度国际环保技术与应用合同
- 2024年度虚拟现实技术开发与应用合同的标的及应用领域2篇
- 2024年度在线教育平台运营合作合同2篇
- 2024年度创业项目退出机制协议
- 2024年度融资租赁合同租金计算方式
- 2024年度汽车座套广告位租赁合同书(印度繁体中文版)3篇
- 2024年度借款担保合同
- 《食品营养价值分析》课件
- 2024秋期国家开放大学《高层建筑施工》一平台在线形考(形考作业1至3)试题及答案
- 医学文献检索复习试题和答案解析(四)
- 校园消防安全宣传教育课件
- 2024-2025学年一年级语文上册第四单元测试卷(统编版2024新教材)
- LOPA分析报告(样本)
- 大宗贸易居间协议2024年
- 小学科学五年级上册第四单元《健康生活》作业设计
- 信息化项目施工进度计划及保证措施
- TCI 303-2024 厨余垃圾发酵制备污(废)水处理用碳源
- 中国高血压防治指南(2024版)
- 2024年秋新人教版七年级上册生物课件 第三章 微生物 综合实践项目 利用细菌或真菌制作发酵食品
评论
0/150
提交评论