123.企業(yè)員工信息管理系統(tǒng)的設計與實現(xiàn)畢業(yè)設計_第1頁
123.企業(yè)員工信息管理系統(tǒng)的設計與實現(xiàn)畢業(yè)設計_第2頁
123.企業(yè)員工信息管理系統(tǒng)的設計與實現(xiàn)畢業(yè)設計_第3頁
123.企業(yè)員工信息管理系統(tǒng)的設計與實現(xiàn)畢業(yè)設計_第4頁
123.企業(yè)員工信息管理系統(tǒng)的設計與實現(xiàn)畢業(yè)設計_第5頁
已閱讀5頁,還剩37頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、畢業(yè)設計(論文)畢業(yè)設計(論文) 第第 1 1 頁頁 共共 4242 頁頁 畢業(yè)設計(論文)畢業(yè)設計(論文) 題題 目:目: 企業(yè)員工信息管理系統(tǒng)的設計與實現(xiàn)企業(yè)員工信息管理系統(tǒng)的設計與實現(xiàn) 系系 部:部: 計算機系 專專 業(yè):業(yè): 計算機應用與維護 學學 號:號: 學生姓名:學生姓名: 指導教師:指導教師: 職職 稱:稱: 二二 oo 年年 月月 日日 畢業(yè)設計(論文)畢業(yè)設計(論文) 第第 2 2 頁頁 共共 4242 頁頁 畢業(yè)論文(設計)任務書畢業(yè)論文(設計)任務書 課題名稱:課題名稱:_ _ 企業(yè)員工管理系統(tǒng)企業(yè)員工管理系統(tǒng)_ 系系 部:部:_ _ 計算機系_ 專專 業(yè):業(yè):_ _

2、計算機應用與維護_ 姓姓 名:名:_ _ _ 學學 號:號:_ _ _ _ 指導教師:指導教師:_ _ _ 二二 oo 六六 年年 六六 月月 一一 日日 畢業(yè)設計(論文)畢業(yè)設計(論文) 第第 3 3 頁頁 共共 4242 頁頁 一、畢業(yè)論文(設計)的目的與要求:一、畢業(yè)論文(設計)的目的與要求: 企業(yè)員工管理系統(tǒng)(pms(personnel-manager-system),它是用來 對企業(yè)工廠等員工進行管理的一個桌面應用程序,通過該系統(tǒng)使用者可 以輕松對員工的資料進行輸入、查詢、修改,使得員工資料的管理更加 方便。本文旨在闡述如何用 java 語言開發(fā)基于桌面操作系統(tǒng)以及微軟 數據庫(mi

3、crosoft office access)平臺的小型管理系統(tǒng),其重點是如 何連接數據庫以及如何對數據庫進行操作。 二、畢業(yè)論文(設計)的內容:二、畢業(yè)論文(設計)的內容: 1.企業(yè)員工管理系統(tǒng)的源代碼設計 2.企業(yè)員工管理系統(tǒng)調試 3.企業(yè)員工管理系統(tǒng)的實現(xiàn) 4.課題實現(xiàn)環(huán)境 windows xp jdk 1.5.0_1 intellij idea 5.0 三、畢業(yè)論文(設計)進程的安排三、畢業(yè)論文(設計)進程的安排 畢業(yè)設計(論文)畢業(yè)設計(論文) 第第 4 4 頁頁 共共 4242 頁頁 序序 號號 論文(設計)各階段名稱論文(設計)各階段名稱日日 期期備備 注注 1 1 課題討論,需求

4、分析(3.1-3.5) 2 2 課題的整體策劃和構思(3.63.10) 3 3 課題所需資料的采集(3.113.15) 4 4 課題的實現(xiàn)與調試(3.164.30) 5 5 撰寫論文(5.1 6.1) 6 6 論文的答辯(6 月初) 四、任務執(zhí)行日期:四、任務執(zhí)行日期: 自自_ _年年_ _ _ _月月_ _ 日起,至日起,至_ _ _ _年年_ _ _ _月月_ _ _ _日止。日止。 學學 生(簽字)生(簽字)_ 指導教師(簽字)指導教師(簽字)_ 系系 主主 任(簽字)任(簽字)_ 畢業(yè)設計(論文)畢業(yè)設計(論文) 第第 5 5 頁頁 共共 4242 頁頁 摘要摘要 企業(yè)員工管理系統(tǒng)(p

5、ms(personnel-manager-system),它是用來對企 業(yè)工廠等員工進行管理的一個桌面應用程序,通過該系統(tǒng)使用者可以輕松 對員工的資料進行輸入、查詢、修改,使得員工資料的管理更加方便。本 文旨在闡述如何用 java 語言開發(fā)基于桌面操作系統(tǒng)以及微軟數據庫 (microsoft office access)平臺的小型管理系統(tǒng),其重點是如何連接數據 庫以及如何對數據庫進行操作。 關鍵詞:關鍵詞: java; 面向對象; microsoft office access;jdbc;dbms 畢業(yè)設計(論文)畢業(yè)設計(論文) 第第 6 6 頁頁 共共 4242 頁頁 目目 錄錄 1 引言

6、.3 1.1java 開發(fā)前奏.3 1.2java 虛擬機及 java 跨平臺原理.4 2 系統(tǒng)分析.6 2.1 可行性分析.6 2.2 需求分析.7 3 統(tǒng)設計.8 3.1 結構設計.8 3.2 詳細設計.12 4 討論.29 4.1 存在的問題及改進思想.29 5 結束語.30 6 致謝.31 7 參考文獻.31 8 附錄:程序 api 文檔.33 畢業(yè)設計(論文)畢業(yè)設計(論文) 第第 7 7 頁頁 共共 4242 頁頁 1 1 引言引言 1.1 java 開發(fā)前奏 sun 公司在 20 世紀 90 年代初開發(fā)電子消費產品時覺得 c 和 c+有許多 不足,因而著手這一新型的編程語言,并于

7、 1995 年正式推出 java。java 用于 www 后,因其在 www 上支持各種動態(tài)和交互效果而迅速聞名。此后, 各種瀏覽器競相支持 java,各種 java 應用也逐漸熱門。 java 是一種簡單易用、完全面向對象、有平臺無關性、安全可靠的、 主要面向 internet 的開發(fā)工具。自從 1995 年正式問世以來,它的快速發(fā) 展已經讓整個 web 世界發(fā)生翻天覆地的變化。隨著 java servlet 的推出, java 在電子商務方面開始嶄露頭角,最新的 java server page(jsp)技術 的推出,更讓 java 成為基于 web 應用程序的首選開發(fā)工具。 java 是

8、第一套允許使用者將應用程序通過 internet 從遠端服務器傳輸 到本地計算機上并執(zhí)行的一種語言,是一種應用程序提供者不需要知道使 用者的計算機硬件與軟件環(huán)境的語言。比爾蓋茨曾經說過:“java 是最 卓越的程序設計語言” 。 相比其他語言,java 技術平臺具有明顯的優(yōu)越性。從最初建造 java 平臺開始,就考慮了安全性的問題,即其安全性是建立在 java 平臺的內核 中的。其他的語言只是在軟件開發(fā)時才由用戶自行處理其安全問題,難免 會有安全漏洞。其次對于程序員來說,java 比其他人和一門語言都好用, 原因在于:java 有自動回收垃圾的功能,java 增加了對象和變量的強制類 型檢查,

9、java 還取消了指針。 目前,java 技術的架構包括以下三個方面: j2ee(java 2 platform enterprise edition) 企業(yè)版,是以企業(yè) 畢業(yè)設計(論文)畢業(yè)設計(論文) 第第 8 8 頁頁 共共 4242 頁頁 為環(huán)境而開發(fā)應用程序的解決方案。目前已經成為開發(fā)商創(chuàng)建電子商務的 事實標準。 j2se(java 2 platform standard edition) 標準版,是桌面開發(fā) 和低端商務應用的解決方案。提供 corba 標準的 orb 技術,結合 java 的 rmi 支持分布式交互操作環(huán)境。 j2me(java 2 platform micro e

10、dition) 小型版,是致力于消費 產品和嵌入式設備的最佳解決方案。提供 http 高級 internet 協(xié)議,使移 動電話能以 client/server 方式直接訪問 internet 全部信息,不同的 client 訪問不同的文件,此外還能訪問本地存儲區(qū),提供高效率的無線交 流。 java 技術又有以下廣泛的內涵: 首先,它是一門編程語言,java 能夠創(chuàng)建所有其他傳統(tǒng)語言能編寫 的應用程序,java 能夠寫獨立的應用程序,運行在裝有 java 虛擬機的操作 系統(tǒng)上。java 編寫的程序經常用在 www 環(huán)境中(比如 applet、servlet 等) , applet 在瀏覽器中執(zhí)

11、行不需要操作系統(tǒng) jvm 的支持。 其次,java 還是一個開發(fā)環(huán)境,java 技術包含一系列的工具:編譯 器,解釋器、文檔生成工具、打包工具等。另外由 java 2 sdk 提供的 jre(java runtime environment)還包括一個完整的 java 類集合,比如 基本語言類、gui 控件類等。 最后,java 也是一個運行環(huán)境,我們可以從 sun 公司提供的 java 2 sdk 中來搭建運行環(huán)境,而這一切都是免費的。 1.2java 虛擬機及 java 跨平臺原理 java 虛擬機(jvm)是可運行 java 字節(jié)碼的假想計算機,java 的跨平 畢業(yè)設計(論文)畢業(yè)設計

12、(論文) 第第 9 9 頁頁 共共 4242 頁頁 臺是相對于其他語言而言的,與其他程序相比,執(zhí)行的中間過程只是多了 一個 java 虛擬機,如下圖 1-2 所示: windows 下的 c 語言編譯過程 java 語言編譯過程 圖 1-2 c 與 java 的編譯過程 由圖 1.2 可見,只要實現(xiàn)了特種平臺下的解釋程序,java 字節(jié)碼就能 通過解釋程序在該平臺下運行,這是 java 跨平臺的根本。當前并不是在所 有的平臺下都有相應的 java 解釋器程序,這也是 java 并不是在所有的平 臺下都能運行的原因,它只能在已實現(xiàn)了 java 解釋器程序的平臺下運行。 java 兼顧解釋性與編譯

13、性語言的特點,java 源文件轉換成 class 字節(jié) 碼文件的過程是編譯型的, class 在 操作系統(tǒng)上運行的過程是解釋型的, java 虛擬機充當了解釋器的作用。 c 原程序(擴展名為.c) windows 可執(zhí)行文件 (擴展名為.exe) c 編譯程序 windows 操作系統(tǒng) 執(zhí)行 java 原程序(擴展名為.java) java 編譯程序 java 字節(jié)碼文件(擴展名為.class) 執(zhí)行 java 虛擬機 windows 下 的 java 字節(jié) 碼解釋程序 linux 下的 java 字節(jié)碼 解釋程序 能解釋 java 字節(jié) 碼的 cpu 執(zhí)行 linux 系統(tǒng) 執(zhí)行 其他系統(tǒng)

14、執(zhí)行 windows 系統(tǒng) 畢業(yè)設計(論文)畢業(yè)設計(論文) 第第 1010 頁頁 共共 4242 頁頁 2 2 系統(tǒng)分析系統(tǒng)分析 2.1 可行性分析 2.1.1 技術可行性 從目前市場上的操作系統(tǒng)和管理類的軟件來看,對于比較簡單的小型 管理系統(tǒng),一般使用 microsoft access 數據庫就已經足夠了,它需要一個 良好的操作界面,方便、簡單的操作過程是很有必要的。 java 無疑是開發(fā)圖形界面的最佳選擇,豐富的類庫提供了足夠的控件 供開發(fā)人員使用,使得界面設計更是靈活多變,能夠設計出更多、更好的 用戶界面。 在 java 與數據庫連接方面,使用 jdbc 可以很容易的將 sql 語句傳

15、到 任何關系型數據庫中,java 與 jdbc 的結合,使得程序員可以只寫一次數據 庫應用軟件后就可以在任何一種數據庫系統(tǒng)上運行。由于 java 語言具有健 壯性、安全、易使用、易理解和自動下載到網絡等優(yōu)點,因此它是數據庫 應用的一個極好的基礎語言。jdbc 又實現(xiàn) java 應用程序與各種不同數據庫 的對話,擴充了 java 應用程序的應用范圍。 java 訪問數據庫有兩種情況,即 applet 和 application,但是他們訪 問數據庫的步驟大致相同,以下 java 訪問 access 數據庫的工作原理 圖 2-1-1.1 java 訪問數據庫的工作原理圖 java applicat

16、ion 的最廣泛的用途是應用于公司或企業(yè)內部網上,所以 數據庫 java 應用程序 jdbc 應用編程接口 jdbc 驅動程序管理器 jdbc-odbc 橋接驅動程序 odbc 畢業(yè)設計(論文)畢業(yè)設計(論文) 第第 1111 頁頁 共共 4242 頁頁 可以稱為商業(yè)網的應用。這些 applications 可以訪問本地或是任何網絡上 的共享數據庫服務器,當然它也能通過 internet 來訪問數據庫,圖 2-2 表 示了 java application 訪問網絡數據庫的情況。 2.1.2 經濟可行性 該管理系統(tǒng)比較小,對機器的配置等要求比較低,界面友好,程序簡 單易用,容易上手,操作者不需

17、要對計算機數據庫等有很深的了解、認識。 2.2 需求分析 2.2.1 功能要求 從一開始,我的目標就是建立一個企業(yè)人事管理系統(tǒng),功能不是很齊 全,主要實現(xiàn)以下幾項功能:用戶登錄,添加、修改、刪除注冊用戶信息; 添加新員工信息,員工人事調動信息的錄入,查找、修改員工信息;重新 初始化數據庫等。 2.2.2 運行要求 本程序的建議運行環(huán)境為:windows 9x/2000/xp + jre 5.0 update 6 java 應用程序 jdbc 驅動程序 (可允許的下載) 本地硬盤資源 或其他資源 客戶端lan 或 internet數據庫服務器 圖 2-1-1.1 application 訪問網絡

18、數 據庫據庫 畢業(yè)設計(論文)畢業(yè)設計(論文) 第第 1212 頁頁 共共 4242 頁頁 3 3 系統(tǒng)設計系統(tǒng)設計 3.1 結構設計 3.1.1 主界面設計 良好的用戶界面對一個應用程序有著非常重要的作用,通過它,程序 的用戶可以知道該如何進行操作,它直接與用戶打交道,要簡單明了。 主程序界面設計: 應當有一個菜單欄,不同的功能在不同的菜單中,用戶可以隨時找 到 程序將所有的功能都集成到鼠標右鍵中,用戶可以在不使用菜單的 情況下快速在不同的窗口之間切換 3.1.2 其它窗口設計 管理員登陸 數據庫的直接管理人員被稱為管理員,能對學生的資料進行修改,只 有管理員登陸正確登陸后用

19、戶才能對數據庫進行修改。 輸入用戶賬號、密碼 選擇用戶的類型,這里的類型只有管理 員和普通用戶兩種 圖圖 3-1-1.1 畢業(yè)設計(論文)畢業(yè)設計(論文) 第第 1313 頁頁 共共 4242 頁頁 管理用戶部分 管理用戶包括三兩個方面: 添加新用戶資料,包括用戶的賬號、密碼以及注冊的用戶的類型。 刪除用戶,刪除已經存在的用戶,從賬號欄選擇要刪除的賬戶。 修改用戶,管理員可以修改登陸用戶的密碼,以及用戶的權限等。 圖圖 3-1-2-2.13-1-2-2.1 新員工資料輸入部分 企業(yè)中有新員工加入的時候我們應當添加員工的資料,程序自動根據 數據庫中已有的員工的編號

20、的自動為新員工編號,員工的這個編號在數據 庫中是唯一的,自始至終都是不可以更改的。 圖圖 3-1-2-1 畢業(yè)設計(論文)畢業(yè)設計(論文) 第第 1414 頁頁 共共 4242 頁頁 圖圖 3-1-2-33-1-2-3 人事調動管理部分 當員工因為升職、調動、退休等原因離開公司的時候,為了能掌握員 職工所有動向以及在以后能及時查找到該員工,該部分用于記錄員工的動 向。 圖圖 3-1-2-43-1-2-4 員工信息查找修改部分 畢業(yè)設計(論文)畢業(yè)設計(論文) 第第 1515 頁頁 共共 4242 頁頁 員工加入公司后其個人資料難免會發(fā)生改變,面對這種情況我們需要

21、 及時地對員工的信息進行更改,這個更改工程我們應該能對員工的所有資 料能一幕了然,然后再根據需求進行更改;要查找員工的調動信息,要直 觀的列出要查找的員工的每次調動的時間和最終去向,以方便能夠及時找 到該員工。 圖圖 3-1-2-53-1-2-5 3.1.3 數據庫的組成 數據庫是該系統(tǒng)的核心,它是存儲企業(yè)員工信息資料以及企業(yè)部門資 料的地方,本程序的數據庫包括以下幾個方面: 對登陸用戶管理員信息存儲的數據庫,這里面應當包括登陸用戶的 賬號、密碼以及該用戶對軟件操作的權限等信息。 對員工信息存儲的數據庫,這里面應當包括員工基本資料、員工的 調動情況等資料。 存放基本部門信息的數據庫,這些基本的

22、部門信息在程序啟動或窗 畢業(yè)設計(論文)畢業(yè)設計(論文) 第第 1616 頁頁 共共 4242 頁頁 口被打開的時候可能會用到他們 程序的數據庫存放在該程序的當前目錄下,該數據庫一共包括有六兩 個程序要用到的表: system 用于存放該程序登陸用戶的詳細資料 worker 用于存放員工學生的基本資料 change 用于存放員工人事調動信息 department 用于存儲各個部門信息 duty 用于存儲所有員工職務信息 education 用于存儲學歷信息 當程序為執(zhí)行的時候數據庫中只有 department、duty、education 這 三個表,其他三個表在程序第一次運行的時候會由程序自

23、動創(chuàng)建。 具體數據庫圖(如圖 3-1-3 所示) 圖 3-1-3 數據庫表 3.2 詳細設計 3.2.1 流程圖與功能圖 系統(tǒng)流程圖 畢業(yè)設計(論文)畢業(yè)設計(論文) 第第 1717 頁頁 共共 4242 頁頁 畢業(yè)設計(論文)畢業(yè)設計(論文) 第第 1818 頁頁 共共 4242 頁頁 程序啟動 加載 config.xml 設置 判斷是否是第一次運行 初始化數據庫 初始化管理員 用戶登陸 否 是 賬號是否正確 是 連接數據庫 登陸次數3 否否 程序退出 是 是否管理員開放部分功能 否 開放所有功能 程序主界面,功能選擇 是 用戶管理員工管理 用 戶 退 出 添加 刪除 修改

24、用戶 資料 是否繼續(xù) 是 否 添加 新員 工 員工 人事 變動 資料 查詢 修改 是否繼續(xù) 是 否 是否退出 否是 修改 config.xml 設置 關閉數據庫 初始化數據庫 初始化系統(tǒng)表 設置默認 管理員 程序退出 圖 3-2-1-2 企業(yè)人事管理系統(tǒng)系統(tǒng)流程圖 畢業(yè)設計(論文)畢業(yè)設計(論文) 第第 1919 頁頁 共共 4242 頁頁 功能圖 圖 3-2-1-2 企業(yè)人事管理系統(tǒng)功能圖 3.2.2 數據庫的設計 創(chuàng)建管理員工信息資料的應用程序,到底怎樣才能有效地管理學 生的數據毫無疑問,數據庫在其中扮演著相當重要的作用。 創(chuàng)建數據庫 在程序的當前目錄下創(chuàng)建

25、一個名為 manager 的 microsoft access 數 據庫,并將其的管理員密碼設置為 123。 創(chuàng)建數據庫表 在 microsoft access 數據庫中建立以下幾個數據表: 創(chuàng)建用于存儲基本信息的表,表的結構均如下表 3-2-2-2.1 所示: 系 統(tǒng) 功 能 管理用戶部分 用戶登陸 管理員工資料 用戶退出 添加新用戶 修改用戶資料 輸入新員工資料 輸入員工人事調動資料 查找修改員工資料 刪除用戶資料 初始化數據庫 創(chuàng)建數據庫表 初始化數據庫信息 畢業(yè)設計(論文)畢業(yè)設計(論文) 第第 2020 頁頁 共共 4242 頁頁 數據元素標識類型 id 文本 des

26、 文本 表 3-2-2-2.1 基本信息表一共有三個,表名分別為: department、duty、education。id 指各個表中數據的編號,des 分別指部 門名稱、職務名稱、學歷名稱等,里面的內容是預先設置好的。 另外系統(tǒng)自動創(chuàng)建的三個表分別如下: 1.員工信息表,表名為 worker,其結構如表 3-2-2-2.2 所示。 數據元素標識數據元素名稱字段大小類型 idw 員工學生編號 50 文本 namew 員工姓名 20 文本 sexw 員工性別 5 文本 birthw 員工生日 30 文本 deptw 員工系部 10 文本 dutyw 員工職務 10 文本 eduw 員工教育水平

27、 10 文本 professw 員工專業(yè) 15 文本 addrw 員工學生住址 100 文本 telew 員工電話 25 文本 emailw 員工電子郵件 60 文本 表 3-2-2-2.2 2.員工調動信息表,表名為 change,其結構如表 3-2-2-2.3 所示。 畢業(yè)設計(論文)畢業(yè)設計(論文) 第第 2121 頁頁 共共 4242 頁頁 數據元素標識數據元素名稱字段大小類型 idw 員工學生編號 50 文本 namew 員工姓名 20 文本 timew 員工調動時間 50 文本 containw 員工調動內容 50 文本 demow 調動原因描述 100 文本 表 3-2-2-2.

28、3 3.登陸用戶員工調動信息表,表名為 system,其結構如表 3-2-2- 2.432 所示。 數據元素標識數據元素名稱字段大小類型 username 員工學生編號 30 文本 userpasswd 員工姓名 50 文本 usertype 員工調動時間 1050 文本 表 3-2-2-2.4 3.2.3 使用 jdbc-odbc 橋訪問 access 數據庫 使用 jdbc-odbc 橋的方式訪問數據庫 jdbc-odbc 將 java 通過 jdbc 發(fā) 出的數據庫操作轉化為 odbc 操作。首先要創(chuàng)建于數據庫的連接,然后再打 開數據庫,訪問數據庫的各個需要訪問的表,從表中取出需要的資料

29、或者 更新數據庫等,當對數據庫的操作完成最后再關閉與數據庫的連接。 使用 jdbc 訪問數據庫需要包括 connection、recordset、statement、resultsetmetadata 七個類。 connection 對象是連接數據庫的基礎,它管理程序與數據庫建立連接; statement 對象管理對數據庫操作,一切對數據庫的查詢、更改等操作都基 畢業(yè)設計(論文)畢業(yè)設計(論文) 第第 2222 頁頁 共共 4242 頁頁 于這個類;recordset 對象是管理數據庫記錄的對象,我們可以從這個對象 中取出我們需要的查詢后得數據。 使用以下方法來連接數據庫: *在連接數據庫前我

30、們首先要得到access 數據庫文件的絕對路 徑,我們可以使用file 類來實現(xiàn): file mdb = new file(students.mdb); mdbpath = mdb.getabsolutepath();/得到 students.mdb 的 絕對路徑 mdbpath=mdbpath.replace(,/); *將數據庫的絕對路徑加到數據源路徑中: mdburl=jdbc:odbc: driver=microsoft access driver (*.mdb);dbq=+mdbpath; *加載 jdbc-odbc 橋連接驅動: class.forname(sun.jdbc.odb

31、c.jdbcodbcdriver); * 創(chuàng)建與數據庫的連接: conn= drivermanager.getconnection(mdburl,); 3.2.4 程序的編寫過程及功能實現(xiàn) 工欲善其事,必先利其器。本次編寫這個企業(yè)人事管理系統(tǒng),主要是 使用了 jetbrains s.r.o 公司開發(fā)的 intellij idea 436 這個工具。 intellij idea 是一個智能化的開發(fā)工具,在網上被稱為 java 最好的開發(fā) 工具,它在所有 java 開發(fā)工具中對 java 源代碼進行語法檢查的智能提示 等方面都是最優(yōu)秀的。其運行后的界面如下圖 3-2-4 所示: 畢業(yè)

32、設計(論文)畢業(yè)設計(論文) 第第 2323 頁頁 共共 4242 頁頁 圖 3-2-4 程序編寫環(huán)境 程序運行界面 為了使用戶界面更友好,所以整個程序使用了大量的 java swing 組件。 如圖 圖 3-2-4-1 程序運行界面 畢業(yè)設計(論文)畢業(yè)設計(論文) 第第 2424 頁頁 共共 4242 頁頁 連連接數據接數據庫類庫類的的編編寫寫 數據庫的連接方面使用的是 main 類中的 connectdatabase()方法,這 個類實現(xiàn)與數據庫的連接。 構造方法,加載驅動并創(chuàng)建與數據庫的連接 public connectiondatabase() file

33、 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.jdbcodbcdriver); catch (classnotfoundexception e) e.printstacktrace(); try conn= drivermanager.getconnec

34、tion(mdburl,); catch (sqlexception e) e.printstacktrace(); 調用 initproperties()initproperties()來來加載系統(tǒng)屬性配置文件 config.xml,并根據 畢業(yè)設計(論文)畢業(yè)設計(論文) 第第 2525 頁頁 共共 4242 頁頁 里面的內容來確定該方法內調用的 initdatabase()方法的任務。 try prop.loadfromxml(new fileinputstream(config.xml); system.out.println(成功加載系統(tǒng)屬性文件 config.xml !); cat

35、ch (ioexception e) e.printstacktrace(); joptionpane.showmessagedialog(mainframe,找不到系統(tǒng)必須的 config.xml 文件!,找不到文件,joptionpane.error_message); eturn false; 系統(tǒng)配置文件 config.xml programe comment : 0 0 create table worker (idw varchar(50) not null,namew varchar(20), sexw varchar(5),birthw varchar(30),deptw va

36、rchar(10), dutyw varchar(10),eduw varchar(10),professw varchar(15), addrw varchar(100),telew varchar(25),emailw varchar(60) 畢業(yè)設計(論文)畢業(yè)設計(論文) 第第 2626 頁頁 共共 4242 頁頁 create table change (idw varchar(50) not null,namew varchar(20), timew varchar(50),containw varchar(50), demow varchar(100) insert into s

37、ystem(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 語句,程 序需要初始化數據庫的時候就將從該文件中取出需要語句。另外 first_or_not 是指程序運行的次數,initdataba

38、se 指初始數據庫的次數, 這兩個變量的初始值都是 0,程序運行時先判斷這兩個值,如果都是 0 說明 程序是第一次運行,程序會自行初始化數據庫,創(chuàng)建系統(tǒng)必須的表。 管理員登陸,檢測用戶賬號密碼是否正確 while(rs.next() try name=rs.getstring(username); 畢業(yè)設計(論文)畢業(yè)設計(論文) 第第 2727 頁頁 共共 4242 頁頁 password=rs.getstring(userpasswd); type=rs.getstring(usertype); if(username.equals(name) break; catch (sqlexcep

39、tion e) e.printstacktrace(); 添加系統(tǒng)管理員,使用 statement 對象對數據庫表進行操作,該對象實 現(xiàn)對表記錄的更新、插入、刪除等操作。在添加用戶前要檢查用戶名是否 存在。 源代碼: try if(statetemp!=null) int line = statetemp.executeupdate(insert into system (username,userpasswd,usertype) values ( + info0 +,+ encode.md5(info2) +,+info4+); if(line=1) system.out.println(成

40、功添加賬號為:+info0+ 新用 戶!); 畢業(yè)設計(論文)畢業(yè)設計(論文) 第第 2828 頁頁 共共 4242 頁頁 joptionpane.showmessagedialog(managerjinternalframe,成功添加 賬號為:+info0+ 新用戶!,提示, joptionpane.information_message); catch (sqlexception e1) /例外處理 管理登陸用戶的賬號密碼,包括更新用戶密碼和刪除用戶 * 更新用戶密碼 try if(statetemp!=null) int line = statetemp.executeupdate(up

41、date system set userpasswd=+ encode.md5(info2) +,usertype=+ info4 + + where username=+ info0 +); if(line=1) system.out.println(成功更新名為:+info0+ 的信息 !); joptionpane.showmessagedialog(managerjinternalframe,成功更新 名為:+info0+的信息!,提示 ,joptionpane.information_message); catch (sqlexception e1) /例外處理 畢業(yè)設計(論文)畢業(yè)

42、設計(論文) 第第 2929 頁頁 共共 4242 頁頁 * 刪除用戶 try if(statetemp!=null) int line=statetemp.executeupdate(delete from system where username=+ info0 +); if(line=1) system.out.println(成功刪除賬號為:+info0+的用戶! ); joptionpane.showmessagedialog(managerjinternalframe,成功刪除 賬號為:+info0+的用戶!,提示 ,joptionpane.information_message

43、); catch (sqlexception e1) /例外處理 員工信息管理包括三部分,分別是輸入新員工的基本資料、輸入員工的 調動信息、員工信息的查詢修改。這三個方面的信息都分別放置在一個 string 類型的數組中,這個數組分別從員工信息管理三部分相應的類方法 中取得。 * 輸入新員工的基本資料,并存儲倒數據庫中,數據庫的更新語句如下: 更新 worker 表: int line = statetemp.executeupdate(insert into worker (idw,namew,sexw,birthw,deptw,dutyw,eduw,professw,addrw,telew

44、,em ailw) values( + newworker0 + , + + newworker1 + , 畢業(yè)設計(論文)畢業(yè)設計(論文) 第第 3030 頁頁 共共 4242 頁頁 + + newworker2 + , + + newworker3 + , + + newworker4 + , + + newworker5 + , + + newworker6 + , + + newworker7 + , + + newworker8 + , + + newworker9 + , + + newworker10 + ) ); 更新 change 表: line = statetemp.ex

45、ecuteupdate(insert into change (idw,namew,timew,containw,demow) values(+ + newworker0 + , + + newworker1 + ,+ + newworker12 + , + + newworker11 +, + ); 這里的 newworker 數組是由 addnew 類中獲得的,里面記錄了所有新員工的 信息。該類不但要更新 worker 表,還要更新 change 表。 * 輸入員工的調動信息,與上面的輸入新員工的基本資料相似,不同的是 sql 語句 insert 的參數由 change 類中取得。該類實現(xiàn)

46、了 caretlistener 接 口,為 idtextfield 添加該事件,當里面的內容沒改變一次就觸發(fā)一次 caretupdate()方法。當輸入的員工編號存在的時候,程序將員工的信息取 出并放在相應的組件當中。 * 員工信息的查詢修改,該方法同輸入員工的調動信息相同,也實現(xiàn)了 caretlistener 接口,其作用和輸入員工的調動信息相同。該部分使用了 jtable 組件,為了能及時更新 table 的顯示,自己需要創(chuàng)建 mytablemodel 類,該類繼承了 abstracttablemodel 類,需要實現(xiàn) abstracttablemodel 類中所有未實現(xiàn)的方法。 publ

47、ic class mytablemodel extends abstracttablemodel 畢業(yè)設計(論文)畢業(yè)設計(論文) 第第 3131 頁頁 共共 4242 頁頁 private object p; private string n; public mytablemodel(string contains,string columnname) p = contains; n = columnname; public int getcolumncount() return n.length; public int getrowcount() return p.length; publ

48、ic 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, int columnindex) 畢業(yè)設計(論文)畢業(yè)設計(論文) 第第 3232 頁頁 共共 4242 頁頁 return true; /* public v

49、oid setvalueat(object value, int row, int col) prowcol = value; firetablecellupdated(row, col); */ 密碼的安全性 程序中注冊的登錄用戶的密碼不能以明文的形式存儲,那樣很不安全, 所以數據庫中存儲的密碼文件要是加密后的密文,這個程序里選擇使用 md5 加密用戶密碼。在 encode 類中實現(xiàn) md5 方法。java 實現(xiàn) md5 加密的代碼如 下: public class encode public static string md5(string passwd) char hex

50、chars = 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 * 2; 畢業(yè)設計(論文)畢業(yè)設計(論文) 第第 3333 頁頁 共共 4242 頁頁 int k = 0; for (byte b : byte

51、s) charsk+ = hexcharsb 4 charsk+ = hexcharsb return new string(chars); catch (exception e) return null; 3.2. 5 錯誤處理 程序運行后難免會有輸入錯誤,程序中出錯可以幫助我們很快的找到 出錯地點,程序中數據庫方面的異常主要有 classnotfoundexception 和 sqlexception,創(chuàng)建程序主界面方面則有只 exception,使用這些對象的 printstacktrace()方法可以找到程序出錯的地方和出錯原因。 畢業(yè)設計(論文)畢業(yè)設計(論文) 第第 3434 頁頁

52、 共共 4242 頁頁 4 4 討論討論 4.1 存在的問題及改進思想 本程序的編寫歷時一個多月,在 windows xp jdk 1.5.0_1 平臺上 測試通過,基本上實現(xiàn)了預期的目的,但功能還很不完善。鑒于本人精力 水平有限,時間倉促,錯誤與不足之處在所難免,以待后續(xù)開發(fā)中不斷改 進和完善。 在后續(xù)開發(fā)中,準備從以下幾方面著手: 增加動態(tài)信息分布功能,允許員工通過網絡查詢自己的資料,并且進 行確認。 增強數據查詢功能,在關鍵字查詢的基礎上增加分類查詢。 總之,本程序編寫不是一個終點,而是一個起點。java 在不斷發(fā)展,它 的強項并不是使用 j2se 來開發(fā)桌面應用程序,而更多的應用是使用

53、 j2ee 開發(fā)網絡應用程序,盡管它在開發(fā)桌面程序上占有很多優(yōu)勢。java 博大精 深,現(xiàn)在唯有不斷學習和吸收,才能趕上時代的進步。 畢業(yè)設計(論文)畢業(yè)設計(論文) 第第 3535 頁頁 共共 4242 頁頁 5 5 結束語結束語 做什么事情都要有個好的開頭,一個應用程序在開發(fā)之前的需求分析 工作影響整個開發(fā)過程。從需求分析入手,做好各項準備工作程序各 子功能的確定、數據庫的設計等,然后選擇開發(fā)環(huán)境、開發(fā)工具,一步一 步,循序漸進,最終把一個好的企業(yè)人事管理系統(tǒng)展現(xiàn)在各位用戶的眼前。 畢業(yè)設計(論文)畢業(yè)設計(論文) 第第 3636 頁頁 共共 4242 頁頁 6 6 致謝致謝 我的畢業(yè)設計

54、工作是在 xxx 老師指導下進行的。從選題、設計、編程、 調試、撰寫論文等環(huán)節(jié),都是在 xxx 老師精心指導下完成。苗連強老師工 作認真、治學嚴謹。在畢業(yè)設計期間,不僅使我學習到了知識,而且還得 到了綜合鍛煉和提高。同時,也更加懂得了如何做一個合格的大學生去面 對未來。在此,我十分感謝 xxx 老師的精心指導! 同時我也感謝在三年中教過我的所有老師!感謝幫助我的所有同學! 畢業(yè)設計(論文)畢業(yè)設計(論文) 第第 3737 頁頁 共共 4242 頁頁 7 7 參考文獻 1. 張孝祥 java 就業(yè)培訓教程 清華大學出版社,2003 2. 侯捷 java 編程思想(第二版) 機械工業(yè)出版社 200

55、2 3. 王路 j2se 核心 api 參考與實例 中國水利水電出版社,2002 4. 李東升 jdbc 數據庫編程與 j2ee. 電子工業(yè)出版社,2004 5. 竇魏 java 軟件開發(fā)(第二版) 人民郵電出版社,2004 6. 殷兆麟 java 網絡編程. 國防工業(yè)出版社,2001 7. 林志揚 精通 java swing 程序設計 中國鐵道出版社 2002 畢業(yè)設計(論文)畢業(yè)設計(論文) 第第 3838 頁頁 共共 4242 頁頁 8 8 附錄:程序附錄:程序 apiapi 文檔文檔 1 1、 packagepackage dwldwl classclass addnewaddnew

56、java.lang.object dwl.addnewdwl.addnew public class addnewaddnew extends java.lang.object 實現(xiàn)添加新員工的界面,并且可以獲得員工的信息 構造方法摘要構造方法摘要 addnewaddnew(java.sql.connection conn) 初始化界面,并從數據庫中取出需要的信息 方法摘要方法摘要 java.lang.stringgetinformation getinformation()得到要添加的新員工的信息 javax.swing.jpanelgetpanel getpanel()得到包含有組件的面板

57、容器 2 2、 packagepackage dwldwl classclass changechange java.lang.object dwl.changedwl.change public class changechange extends java.lang.object implements javax.swing.event.caretlistener, javax.swing.event.changelistener 該類實現(xiàn)創(chuàng)建人事變動的窗口 構造方法摘要構造方法摘要 changechange(java.sql.connection conn) 初始化界面,并從數據庫中取出

58、需要的信息 方法摘要方法摘要 void caretupdatecaretupdate(javax.swing.event.caretevent e) 本類實現(xiàn)了 caretlistener 接口,該方法重寫接口 中為實現(xiàn)的 caretupdate()方法, 該方法用于查找員工信息 java.lang.stringgetchangeinfo getchangeinfo() 取得人事變更窗口中的所有的信息 javax.swing.jpanelgetpanel getpanel() 得到含有組件的容器 void statechangedstatechanged(javax.swing.event.c

59、hangeevent e) 本類實現(xiàn)了 changelistener 接口,該方法重寫接口 中為實現(xiàn)的 statechanged()方法 畢業(yè)設計(論文)畢業(yè)設計(論文) 第第 3939 頁頁 共共 4242 頁頁 3 3、 packagepackage dwldwl classclass connectdbconnectdb java.lang.object dwl.connectdbdwl.connectdb public class connectdbconnectdb extends java.lang.object 該類實現(xiàn)連接數據庫的界面 構造方法摘要構造方法摘要 connectd

60、bconnectdb() 方法摘要方法摘要 boolean chackloginchacklogin(java.lang.string useinfo, java.sql.connection conn) 該方法實現(xiàn)檢查登陸用戶帳號密碼是否正確 java.lang.stringgetlogininfo getlogininfo() 得到登陸用戶的資料 private java.lang.stringgetname getname() 得到登陸用戶的用戶名 javax.swing.jpanelgetpanel getpanel() 得到該類的窗口中組件的布局界面 private java.lan

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論