




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、畢業(yè)設(shè)計(論文)畢業(yè)設(shè)計(論文)第第 1 1 頁頁 共共 4444 頁頁畢業(yè)設(shè)計(論文)畢業(yè)設(shè)計(論文)題題 目:目: 企業(yè)員工信息管理系統(tǒng)的設(shè)計與實現(xiàn)企業(yè)員工信息管理系統(tǒng)的設(shè)計與實現(xiàn) 系系 部:部: 計算機系 專專 業(yè):業(yè): 計算機應(yīng)用與維護 學(xué)學(xué) 號:號: 學(xué)生姓名:學(xué)生姓名: 指導(dǎo)教師:指導(dǎo)教師: 職職 稱:稱: 二二 oo 年年 月月 日日畢業(yè)設(shè)計(論文)畢業(yè)設(shè)計(論文)第第 2 2 頁頁 共共 4444 頁頁畢業(yè)論文(設(shè)計)任務(wù)書畢業(yè)論文(設(shè)計)任務(wù)書課題名稱:課題名稱:_ _ 企業(yè)員工管理系統(tǒng)企業(yè)員工管理系統(tǒng)_系系 部:部:_ _ 計算機系_專專 業(yè):業(yè):_ _ 計算機應(yīng)用與維護_
2、姓姓 名:名:_ _ _學(xué)學(xué) 號:號:_ _ _ _指導(dǎo)教師:指導(dǎo)教師:_ _ _ 二二 oo 六六 年年 六六 月月 一一 日日畢業(yè)設(shè)計(論文)畢業(yè)設(shè)計(論文)第第 3 3 頁頁 共共 4444 頁頁一、畢業(yè)論文(設(shè)計)的目的與要求:一、畢業(yè)論文(設(shè)計)的目的與要求:企業(yè)員工管理系統(tǒng)(pms(personnel-manager-system),它是用來對企業(yè)工廠等員工進行管理的一個桌面應(yīng)用程序,通過該系統(tǒng)使用者可以輕松對員工的資料進行輸入、查詢、修改,使得員工資料的管理更加方便。本文旨在闡述如何用 java 語言開發(fā)基于桌面操作系統(tǒng)以及微軟數(shù)據(jù)庫(microsoft office acces
3、s)平臺的小型管理系統(tǒng),其重點是如何連接數(shù)據(jù)庫以及如何對數(shù)據(jù)庫進行操作。二、畢業(yè)論文(設(shè)計)的內(nèi)容:二、畢業(yè)論文(設(shè)計)的內(nèi)容:1.企業(yè)員工管理系統(tǒng)的源代碼設(shè)計2.企業(yè)員工管理系統(tǒng)調(diào)試3.企業(yè)員工管理系統(tǒng)的實現(xiàn)4.課題實現(xiàn)環(huán)境windows xp jdk 1.5.0_1intellij idea 5.0三、畢業(yè)論文(設(shè)計)進程的安排三、畢業(yè)論文(設(shè)計)進程的安排畢業(yè)設(shè)計(論文)畢業(yè)設(shè)計(論文)第第 4 4 頁頁 共共 4444 頁頁序序 號號論文(設(shè)計)各階段名稱論文(設(shè)計)各階段名稱日日 期期備備 注注1 1課題討論,需求分析(3.1-3.5)2 2課題的整體策劃和構(gòu)思(3.63.10)3
4、3課題所需資料的采集(3.113.15)4 4課題的實現(xiàn)與調(diào)試(3.164.30)5 5撰寫論文(5.1 6.1)6 6論文的答辯(6 月初)四、任務(wù)執(zhí)行日期:四、任務(wù)執(zhí)行日期:自自_ _年年_ _ _ _月月_ _ 日起,至日起,至_ _ _ _年年_ _ _ _月月_ _ _ _日止。日止。 學(xué)學(xué) 生(簽字)生(簽字)_ 指導(dǎo)教師(簽字)指導(dǎo)教師(簽字)_ 系系 主主 任(簽字)任(簽字)_畢業(yè)設(shè)計(論文)畢業(yè)設(shè)計(論文)第第 5 5 頁頁 共共 4444 頁頁摘要摘要企業(yè)員工管理系統(tǒng)(pms(personnel-manager-system),它是用來對企業(yè)工廠等員工進行管理的一個桌面應(yīng)
5、用程序,通過該系統(tǒng)使用者可以輕松對員工的資料進行輸入、查詢、修改,使得員工資料的管理更加方便。本文旨在闡述如何用 java 語言開發(fā)基于桌面操作系統(tǒng)以及微軟數(shù)據(jù)庫(microsoft office access)平臺的小型管理系統(tǒng),其重點是如何連接數(shù)據(jù)庫以及如何對數(shù)據(jù)庫進行操作。關(guān)鍵詞:關(guān)鍵詞: java; 面向?qū)ο螅?microsoft office access;jdbc;dbms畢業(yè)設(shè)計(論文)畢業(yè)設(shè)計(論文)第第 6 6 頁頁 共共 4444 頁頁目目 錄錄1 引言.31.1java 開發(fā)前奏.31.2java 虛擬機及 java 跨平臺原理.42 系統(tǒng)分析.62.1 可行性分析.62
6、.2 需求分析.73 統(tǒng)設(shè)計.83.1 結(jié)構(gòu)設(shè)計.83.2 詳細設(shè)計.124 討論.294.1 存在的問題及改進思想.295 結(jié)束語.306 致謝.317 參考文獻.318 附錄:程序 api 文檔.33畢業(yè)設(shè)計(論文)畢業(yè)設(shè)計(論文)第第 7 7 頁頁 共共 4444 頁頁1 1 引言引言1.1 java 開發(fā)前奏sun 公司在 20 世紀(jì) 90 年代初開發(fā)電子消費產(chǎn)品時覺得 c 和 c+有許多不足,因而著手這一新型的編程語言,并于 1995 年正式推出 java。java用于 www 后,因其在 www 上支持各種動態(tài)和交互效果而迅速聞名。此后,各種瀏覽器競相支持 java,各種 java
7、 應(yīng)用也逐漸熱門。java 是一種簡單易用、完全面向?qū)ο?、有平臺無關(guān)性、安全可靠的、主要面向 internet 的開發(fā)工具。自從 1995 年正式問世以來,它的快速發(fā)展已經(jīng)讓整個 web 世界發(fā)生翻天覆地的變化。隨著 java servlet 的推出,java 在電子商務(wù)方面開始嶄露頭角,最新的 java server page(jsp)技術(shù)的推出,更讓 java 成為基于 web 應(yīng)用程序的首選開發(fā)工具。 java 是第一套允許使用者將應(yīng)用程序通過 internet 從遠端服務(wù)器傳輸?shù)奖镜赜嬎銠C上并執(zhí)行的一種語言,是一種應(yīng)用程序提供者不需要知道使用者的計算機硬件與軟件環(huán)境的語言。比爾蓋茨曾經(jīng)
8、說過:“java 是最卓越的程序設(shè)計語言” 。 相比其他語言,java 技術(shù)平臺具有明顯的優(yōu)越性。從最初建造 java平臺開始,就考慮了安全性的問題,即其安全性是建立在 java 平臺的內(nèi)核中的。其他的語言只是在軟件開發(fā)時才由用戶自行處理其安全問題,難免會有安全漏洞。其次對于程序員來說,java 比其他人和一門語言都好用,原因在于:java 有自動回收垃圾的功能,java 增加了對象和變量的強制類型檢查,java 還取消了指針。 目前,java 技術(shù)的架構(gòu)包括以下三個方面: j2ee(java 2 platform enterprise edition) 企業(yè)版,是以企業(yè)畢業(yè)設(shè)計(論文)畢業(yè)設(shè)
9、計(論文)第第 8 8 頁頁 共共 4444 頁頁為環(huán)境而開發(fā)應(yīng)用程序的解決方案。目前已經(jīng)成為開發(fā)商創(chuàng)建電子商務(wù)的事實標(biāo)準(zhǔn)。 j2se(java 2 platform standard edition) 標(biāo)準(zhǔn)版,是桌面開發(fā)和低端商務(wù)應(yīng)用的解決方案。提供 corba 標(biāo)準(zhǔn)的 orb 技術(shù),結(jié)合 java 的rmi 支持分布式交互操作環(huán)境。 j2me(java 2 platform micro edition) 小型版,是致力于消費產(chǎn)品和嵌入式設(shè)備的最佳解決方案。提供 http 高級 internet 協(xié)議,使移動電話能以 client/server 方式直接訪問 internet 全部信息,不同
10、的client 訪問不同的文件,此外還能訪問本地存儲區(qū),提供高效率的無線交流。java 技術(shù)又有以下廣泛的內(nèi)涵:首先,它是一門編程語言,java 能夠創(chuàng)建所有其他傳統(tǒng)語言能編寫的應(yīng)用程序,java 能夠?qū)應(yīng)毩⒌膽?yīng)用程序,運行在裝有 java 虛擬機的操作系統(tǒng)上。java 編寫的程序經(jīng)常用在 www 環(huán)境中(比如 applet、servlet 等) ,applet 在瀏覽器中執(zhí)行不需要操作系統(tǒng) jvm 的支持。 其次,java 還是一個開發(fā)環(huán)境,java 技術(shù)包含一系列的工具:編譯器,解釋器、文檔生成工具、打包工具等。另外由 java 2 sdk 提供的jre(java runtime envi
11、ronment)還包括一個完整的 java 類集合,比如基本語言類、gui 控件類等。 最后,java 也是一個運行環(huán)境,我們可以從 sun 公司提供的 java 2 sdk 中來搭建運行環(huán)境,而這一切都是免費的。1.2java 虛擬機及 java 跨平臺原理java 虛擬機(jvm)是可運行 java 字節(jié)碼的假想計算機,java 的跨平畢業(yè)設(shè)計(論文)畢業(yè)設(shè)計(論文)第第 9 9 頁頁 共共 4444 頁頁臺是相對于其他語言而言的,與其他程序相比,執(zhí)行的中間過程只是多了一個 java 虛擬機,如下圖 1-2 所示:windows 下的 c 語言編譯過程 java 語言編譯過程圖 1-2 c
12、 與 java 的編譯過程 由圖 1.2 可見,只要實現(xiàn)了特種平臺下的解釋程序,java 字節(jié)碼就能通過解釋程序在該平臺下運行,這是 java 跨平臺的根本。當(dāng)前并不是在所有的平臺下都有相應(yīng)的 java 解釋器程序,這也是 java 并不是在所有的平臺下都能運行的原因,它只能在已實現(xiàn)了 java 解釋器程序的平臺下運行。 java 兼顧解釋性與編譯性語言的特點,java 源文件轉(zhuǎn)換成 class 字節(jié)碼文件的過程是編譯型的, class 在 操作系統(tǒng)上運行的過程是解釋型的,java 虛擬機充當(dāng)了解釋器的作用。c 原程序(擴展名為.c)windows 可執(zhí)行文件(擴展名為.exe)c 編譯程序w
13、indows 操作系統(tǒng)執(zhí)行java 原程序(擴展名為.java)java 編譯程序java 字節(jié)碼文件(擴展名為.class)執(zhí)行java 虛擬機windows 下的 java 字節(jié)碼解釋程序linux 下的java 字節(jié)碼解釋程序能解釋java 字節(jié)碼的 cpu執(zhí)行l(wèi)inux 系統(tǒng)執(zhí)行其他系統(tǒng)執(zhí)行windows 系統(tǒng)畢業(yè)設(shè)計(論文)畢業(yè)設(shè)計(論文)第第 1010 頁頁 共共 4444 頁頁2 2 系統(tǒng)分析系統(tǒng)分析2.1 可行性分析2.1.1 技術(shù)可行性從目前市場上的操作系統(tǒng)和管理類的軟件來看,對于比較簡單的小型管理系統(tǒng),一般使用 microsoft access 數(shù)據(jù)庫就已經(jīng)足夠了,它需要一
14、個良好的操作界面,方便、簡單的操作過程是很有必要的。java 無疑是開發(fā)圖形界面的最佳選擇,豐富的類庫提供了足夠的控件供開發(fā)人員使用,使得界面設(shè)計更是靈活多變,能夠設(shè)計出更多、更好的用戶界面。在 java 與數(shù)據(jù)庫連接方面,使用 jdbc 可以很容易的將 sql 語句傳到任何關(guān)系型數(shù)據(jù)庫中,java 與 jdbc 的結(jié)合,使得程序員可以只寫一次數(shù)據(jù)庫應(yīng)用軟件后就可以在任何一種數(shù)據(jù)庫系統(tǒng)上運行。由于 java 語言具有健壯性、安全、易使用、易理解和自動下載到網(wǎng)絡(luò)等優(yōu)點,因此它是數(shù)據(jù)庫應(yīng)用的一個極好的基礎(chǔ)語言。jdbc 又實現(xiàn) java 應(yīng)用程序與各種不同數(shù)據(jù)庫的對話,擴充了 java 應(yīng)用程序的
15、應(yīng)用范圍。java 訪問數(shù)據(jù)庫有兩種情況,即 applet 和 application,但是他們訪問數(shù)據(jù)庫的步驟大致相同,以下 java 訪問 access 數(shù)據(jù)庫的工作原理圖 2-1-1.1 java 訪問數(shù)據(jù)庫的工作原理圖java application 的最廣泛的用途是應(yīng)用于公司或企業(yè)內(nèi)部網(wǎng)上,所以數(shù)據(jù)庫java 應(yīng)用程序jdbc 應(yīng)用編程接口jdbc 驅(qū)動程序管理器jdbc-odbc 橋接驅(qū)動程序odbc畢業(yè)設(shè)計(論文)畢業(yè)設(shè)計(論文)第第 1111 頁頁 共共 4444 頁頁可以稱為商業(yè)網(wǎng)的應(yīng)用。這些 applications 可以訪問本地或是任何網(wǎng)絡(luò)上的共享數(shù)據(jù)庫服務(wù)器,當(dāng)然它也能
16、通過 internet 來訪問數(shù)據(jù)庫,圖 2-2 表示了 java application 訪問網(wǎng)絡(luò)數(shù)據(jù)庫的情況。2.1.2 經(jīng)濟可行性該管理系統(tǒng)比較小,對機器的配置等要求比較低,界面友好,程序簡單易用,容易上手,操作者不需要對計算機數(shù)據(jù)庫等有很深的了解、認(rèn)識。2.2 需求分析2.2.1 功能要求從一開始,我的目標(biāo)就是建立一個企業(yè)人事管理系統(tǒng),功能不是很齊全,主要實現(xiàn)以下幾項功能:用戶登錄,添加、修改、刪除注冊用戶信息;添加新員工信息,員工人事調(diào)動信息的錄入,查找、修改員工信息;重新初始化數(shù)據(jù)庫等。2.2.2 運行要求本程序的建議運行環(huán)境為:windows 9x/2000/xp + jre 5
17、.0 update 6java 應(yīng)用程序jdbc 驅(qū)動程序(可允許的下載)本地硬盤資源或其他資源客戶端lan 或 internet數(shù)據(jù)庫服務(wù)器圖 2-1-1.1 application 訪問網(wǎng)絡(luò)數(shù)據(jù)庫據(jù)庫畢業(yè)設(shè)計(論文)畢業(yè)設(shè)計(論文)第第 1212 頁頁 共共 4444 頁頁3 3 系統(tǒng)設(shè)計系統(tǒng)設(shè)計3.1 結(jié)構(gòu)設(shè)計3.1.1 主界面設(shè)計良好的用戶界面對一個應(yīng)用程序有著非常重要的作用,通過它,程序的用戶可以知道該如何進行操作,它直接與用戶打交道,要簡單明了。 主程序界面設(shè)計:應(yīng)當(dāng)有一個菜單欄,不同的功能在不同的菜單中,用戶可以隨時找到程序?qū)⑺械墓δ芏技傻绞髽?biāo)右鍵中,用戶可以在不使用菜單的情
18、況下快速在不同的窗口之間切換3.1.2 其它窗口設(shè)計 管理員登陸數(shù)據(jù)庫的直接管理人員被稱為管理員,能對學(xué)生的資料進行修改,只有管理員登陸正確登陸后用戶才能對數(shù)據(jù)庫進行修改。輸入用戶賬號、密碼選擇用戶的類型,這里的類型只有管理員和普通用戶兩種圖圖 3-1-1.1畢業(yè)設(shè)計(論文)畢業(yè)設(shè)計(論文)第第 1313 頁頁 共共 4444 頁頁 管理用戶部分管理用戶包括三兩個方面:添加新用戶資料,包括用戶的賬號、密碼以及注冊的用戶的類型。刪除用戶,刪除已經(jīng)存在的用戶,從賬號欄選擇要刪除的賬戶。修改用戶,管理員可以修改登陸用戶的密碼,以及用戶的權(quán)限等。圖圖 3-1-2-2.13-
19、1-2-.3 新員工資料輸入部分企業(yè)中有新員工加入的時候我們應(yīng)當(dāng)添加員工的資料,程序自動根據(jù)數(shù)據(jù)庫中已有的員工的編號的自動為新員工編號,員工的這個編號在數(shù)據(jù)庫中是唯一的,自始至終都是不可以更改的。圖圖 3-1-2-1畢業(yè)設(shè)計(論文)畢業(yè)設(shè)計(論文)第第 1414 頁頁 共共 4444 頁頁圖圖 3-1-2-33-1-2- 人事調(diào)動管理部分當(dāng)員工因為升職、調(diào)動、退休等原因離開公司的時候,為了能掌握員職工所有動向以及在以后能及時查找到該員工,該部分用于記錄員工的動向。圖圖 3-1-2-43-1-2- 員工信息查找修改部分畢業(yè)設(shè)計(論文)畢業(yè)設(shè)計(論文
20、)第第 1515 頁頁 共共 4444 頁頁員工加入公司后其個人資料難免會發(fā)生改變,面對這種情況我們需要及時地對員工的信息進行更改,這個更改工程我們應(yīng)該能對員工的所有資料能一幕了然,然后再根據(jù)需求進行更改;要查找員工的調(diào)動信息,要直觀的列出要查找的員工的每次調(diào)動的時間和最終去向,以方便能夠及時找到該員工。圖圖 3-1-2-53-1-2-53.1.3 數(shù)據(jù)庫的組成數(shù)據(jù)庫是該系統(tǒng)的核心,它是存儲企業(yè)員工信息資料以及企業(yè)部門資料的地方,本程序的數(shù)據(jù)庫包括以下幾個方面:對登陸用戶管理員信息存儲的數(shù)據(jù)庫,這里面應(yīng)當(dāng)包括登陸用戶的賬號、密碼以及該用戶對軟件操作的權(quán)限等信息。對員工信息存儲的數(shù)據(jù)庫,這里面應(yīng)
21、當(dāng)包括員工基本資料、員工的調(diào)動情況等資料。存放基本部門信息的數(shù)據(jù)庫,這些基本的部門信息在程序啟動或窗畢業(yè)設(shè)計(論文)畢業(yè)設(shè)計(論文)第第 1616 頁頁 共共 4444 頁頁口被打開的時候可能會用到他們程序的數(shù)據(jù)庫存放在該程序的當(dāng)前目錄下,該數(shù)據(jù)庫一共包括有六兩個程序要用到的表:system用于存放該程序登陸用戶的詳細資料worker用于存放員工學(xué)生的基本資料change用于存放員工人事調(diào)動信息department用于存儲各個部門信息duty用于存儲所有員工職務(wù)信息education用于存儲學(xué)歷信息當(dāng)程序為執(zhí)行的時候數(shù)據(jù)庫中只有 department、duty、education 這三個表,其
22、他三個表在程序第一次運行的時候會由程序自動創(chuàng)建。具體數(shù)據(jù)庫圖(如圖 3-1-3 所示) 圖 3-1-3 數(shù)據(jù)庫表3.2 詳細設(shè)計3.2.1 流程圖與功能圖 系統(tǒng)流程圖畢業(yè)設(shè)計(論文)畢業(yè)設(shè)計(論文)第第 1717 頁頁 共共 4444 頁頁畢業(yè)設(shè)計(論文)畢業(yè)設(shè)計(論文)第第 1818 頁頁 共共 4444 頁頁程序啟動加載 config.xml 設(shè)置判斷是否是第一次運行初始化數(shù)據(jù)庫初始化管理員用戶登陸否是賬號是否正確是連接數(shù)據(jù)庫登陸次數(shù)3否否程序退出是是否管理員開放部分功能否開放所有功能程序主界面,功能選擇是用戶管理員工管理用戶退出添加刪除修改用戶資料是否繼續(xù)是否添加新員工員工
23、人事變動資料查詢修改是否繼續(xù)是否是否退出否是修改 config.xml 設(shè)置關(guān)閉數(shù)據(jù)庫初始化數(shù)據(jù)庫初始化系統(tǒng)表設(shè)置默認(rèn)管理員程序退出圖 3-2-1-2 企業(yè)人事管理系統(tǒng)系統(tǒng)流程圖畢業(yè)設(shè)計(論文)畢業(yè)設(shè)計(論文)第第 1919 頁頁 共共 4444 頁頁 功能圖圖 3-2-1-2 企業(yè)人事管理系統(tǒng)功能圖3.2.2 數(shù)據(jù)庫的設(shè)計創(chuàng)建管理員工信息資料的應(yīng)用程序,到底怎樣才能有效地管理學(xué)生的數(shù)據(jù)毫無疑問,數(shù)據(jù)庫在其中扮演著相當(dāng)重要的作用。 創(chuàng)建數(shù)據(jù)庫在程序的當(dāng)前目錄下創(chuàng)建一個名為 manager 的 microsoft access 數(shù)據(jù)庫,并將其的管理員密碼設(shè)置為 123
24、。 創(chuàng)建數(shù)據(jù)庫表在 microsoft access 數(shù)據(jù)庫中建立以下幾個數(shù)據(jù)表:創(chuàng)建用于存儲基本信息的表,表的結(jié)構(gòu)均如下表 3-2-2-2.1 所示:系統(tǒng)功能管理用戶部分用戶登陸管理員工資料用戶退出添加新用戶修改用戶資料輸入新員工資料輸入員工人事調(diào)動資料查找修改員工資料刪除用戶資料初始化數(shù)據(jù)庫創(chuàng)建數(shù)據(jù)庫表初始化數(shù)據(jù)庫信息畢業(yè)設(shè)計(論文)畢業(yè)設(shè)計(論文)第第 2020 頁頁 共共 4444 頁頁數(shù)據(jù)元素標(biāo)識類型id文本des文本表 3-2-2-2.1基本信息表一共有三個,表名分別為:department、duty、education。id 指各個表中數(shù)據(jù)的編號,des 分別指部門
25、名稱、職務(wù)名稱、學(xué)歷名稱等,里面的內(nèi)容是預(yù)先設(shè)置好的。 另外系統(tǒng)自動創(chuàng)建的三個表分別如下:1.員工信息表,表名為 worker,其結(jié)構(gòu)如表 3-2-2-2.2 所示。數(shù)據(jù)元素標(biāo)識數(shù)據(jù)元素名稱字段大小類型idw員工學(xué)生編號50文本namew員工姓名20文本sexw員工性別5文本birthw員工生日30文本deptw員工系部10文本dutyw員工職務(wù)10文本eduw員工教育水平10文本professw員工專業(yè)15文本addrw員工學(xué)生住址100文本telew員工電話25文本emailw員工電子郵件60文本表 3-2-2-2.22.員工調(diào)動信息表,表名為 change,其結(jié)構(gòu)如表 3-2-2-2.3
26、 所示。畢業(yè)設(shè)計(論文)畢業(yè)設(shè)計(論文)第第 2121 頁頁 共共 4444 頁頁數(shù)據(jù)元素標(biāo)識數(shù)據(jù)元素名稱字段大小類型idw員工學(xué)生編號50文本namew員工姓名20文本timew員工調(diào)動時間50文本containw員工調(diào)動內(nèi)容50文本demow調(diào)動原因描述100文本表 3-2-2-2.33.登陸用戶員工調(diào)動信息表,表名為 system,其結(jié)構(gòu)如表 3-2-2-2.432 所示。數(shù)據(jù)元素標(biāo)識數(shù)據(jù)元素名稱字段大小類型username員工學(xué)生編號30文本userpasswd員工姓名50文本usertype員工調(diào)動時間1050文本表 3-2-2- 使用 jdbc-odbc 橋訪問 a
27、ccess 數(shù)據(jù)庫使用 jdbc-odbc 橋的方式訪問數(shù)據(jù)庫 jdbc-odbc 將 java 通過 jdbc 發(fā)出的數(shù)據(jù)庫操作轉(zhuǎn)化為 odbc 操作。首先要創(chuàng)建于數(shù)據(jù)庫的連接,然后再打開數(shù)據(jù)庫,訪問數(shù)據(jù)庫的各個需要訪問的表,從表中取出需要的資料或者更新數(shù)據(jù)庫等,當(dāng)對數(shù)據(jù)庫的操作完成最后再關(guān)閉與數(shù)據(jù)庫的連接。使用 jdbc 訪問數(shù)據(jù)庫需要包括connection、recordset、statement、resultsetmetadata 七個類。connection 對象是連接數(shù)據(jù)庫的基礎(chǔ),它管理程序與數(shù)據(jù)庫建立連接;statement 對象管理對數(shù)據(jù)庫操作,一切對數(shù)據(jù)庫的查詢、更改等操作都
28、基畢業(yè)設(shè)計(論文)畢業(yè)設(shè)計(論文)第第 2222 頁頁 共共 4444 頁頁于這個類;recordset 對象是管理數(shù)據(jù)庫記錄的對象,我們可以從這個對象中取出我們需要的查詢后得數(shù)據(jù)。使用以下方法來連接數(shù)據(jù)庫:*在連接數(shù)據(jù)庫前我們首先要得到access 數(shù)據(jù)庫文件的絕對路徑,我們可以使用file 類來實現(xiàn):file mdb = new file(students.mdb);mdbpath = mdb.getabsolutepath();/得到 students.mdb 的絕對路徑mdbpath=mdbpath.replace(,/);*將數(shù)據(jù)庫的絕對路徑加到數(shù)據(jù)源路徑中: mdburl=jdbc
29、:odbc: driver=microsoft access driver (*.mdb);dbq=+mdbpath;*加載 jdbc-odbc 橋連接驅(qū)動:class.forname(sun.jdbc.odbc.jdbcodbcdriver);* 創(chuàng)建與數(shù)據(jù)庫的連接:conn= drivermanager.getconnection(mdburl,); 3.2.4 程序的編寫過程及功能實現(xiàn)工欲善其事,必先利其器。本次編寫這個企業(yè)人事管理系統(tǒng),主要是使用了 jetbrains s.r.o 公司開發(fā)的 intellij idea 436 這個工具。intellij idea 是一個
30、智能化的開發(fā)工具,在網(wǎng)上被稱為 java 最好的開發(fā)工具,它在所有 java 開發(fā)工具中對 java 源代碼進行語法檢查的智能提示等方面都是最優(yōu)秀的。其運行后的界面如下圖 3-2-4 所示:畢業(yè)設(shè)計(論文)畢業(yè)設(shè)計(論文)第第 2323 頁頁 共共 4444 頁頁圖 3-2-4 程序編寫環(huán)境 程序運行界面為了使用戶界面更友好,所以整個程序使用了大量的 java swing 組件。如圖圖 3-2-4-1 程序運行界面畢業(yè)設(shè)計(論文)畢業(yè)設(shè)計(論文)第第 2424 頁頁 共共 4444 頁頁連接數(shù)據(jù)庫類的編寫連接數(shù)據(jù)庫類的編寫數(shù)據(jù)庫的連接方面使用的是 ma
31、in 類中的 connectdatabase()方法,這個類實現(xiàn)與數(shù)據(jù)庫的連接。 構(gòu)造方法,加載驅(qū)動并創(chuàng)建與數(shù)據(jù)庫的連接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(); 調(diào)用 initproperties()initproperties()來來加載系統(tǒng)屬性配置文件 config.xml,并根據(jù)畢業(yè)設(shè)計(論文)畢業(yè)設(shè)計(論文)第第 2525 頁頁 共共 4444 頁頁里面的內(nèi)容來確定該方法內(nèi)調(diào)用的 initdatabase()方法的任務(wù)。try prop.loadfr
33、omxml(new fileinputstream(config.xml); system.out.println(成功加載系統(tǒng)屬性文件 config.xml !); catch (ioexception e) e.printstacktrace();joptionpane.showmessagedialog(mainframe,找不到系統(tǒng)必須的config.xml 文件!,找不到文件,joptionpane.error_message); eturn false; 系統(tǒng)配置文件 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)畢業(yè)設(shè)計(論文)畢業(yè)設(shè)計(論文)第第 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)該文件中存儲了三個程序運行時初始化數(shù)據(jù)庫的時候使用的 sql
36、語句,程序需要初始化數(shù)據(jù)庫的時候就將從該文件中取出需要語句。另外first_or_not 是指程序運行的次數(shù),initdatabase 指初始數(shù)據(jù)庫的次數(shù),這兩個變量的初始值都是 0,程序運行時先判斷這兩個值,如果都是 0 說明程序是第一次運行,程序會自行初始化數(shù)據(jù)庫,創(chuàng)建系統(tǒng)必須的表。 管理員登陸,檢測用戶賬號密碼是否正確while(rs.next() try name=rs.getstring(username);畢業(yè)設(shè)計(論文)畢業(yè)設(shè)計(論文)第第 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(); 添加系統(tǒng)管理員,使用 statement 對象對數(shù)據(jù)庫表進行操作,該對象實現(xiàn)對表記錄的更新、插入、刪除等操作。在添加用戶前要檢查用戶名是否存在。源代碼: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+ 新用戶!);畢業(yè)設(shè)計(論文)畢業(yè)設(shè)計(論文)第第 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) /例外處理畢業(yè)設(shè)計(論文)畢業(yè)設(shè)計(論文)第第 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) /例外處理 員工信息管理包括三部分,分別是輸入新員工的基本資料、輸入員工的調(diào)動信息、員工信息的查詢修改。這三個方面的信息都分別放置在一個string 類型的數(shù)組中,這個數(shù)組分別從員工信息管理三部分相應(yīng)的類方法中取得。* 輸入新員工的基本資料,并存儲倒數(shù)據(jù)庫中,數(shù)據(jù)庫的更新語句如下:更新 worker 表:int line = state
42、temp.executeupdate(insert into worker(idw,namew,sexw,birthw,deptw,dutyw,eduw,professw,addrw,telew,emailw) values( + newworker0 + , + + newworker1 + , 畢業(yè)設(shè)計(論文)畢業(yè)設(shè)計(論文)第第 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 數(shù)組是由 addnew 類中獲得的,里面記錄了所有新員工的信息。該類不但要更新 wor
44、ker 表,還要更新 change 表。* 輸入員工的調(diào)動信息,與上面的輸入新員工的基本資料相似,不同的是sql 語句 insert 的參數(shù)由 change 類中取得。該類實現(xiàn)了 caretlistener 接口,為 idtextfield 添加該事件,當(dāng)里面的內(nèi)容沒改變一次就觸發(fā)一次caretupdate()方法。當(dāng)輸入的員工編號存在的時候,程序?qū)T工的信息取出并放在相應(yīng)的組件當(dāng)中。* 員工信息的查詢修改,該方法同輸入員工的調(diào)動信息相同,也實現(xiàn)了caretlistener 接口,其作用和輸入員工的調(diào)動信息相同。該部分使用了jtable 組件,為了能及時更新 table 的顯示,自己需要創(chuàng)建
45、mytablemodel類,該類繼承了 abstracttablemodel 類,需要實現(xiàn) abstracttablemodel類中所有未實現(xiàn)的方法。public class mytablemodel extends abstracttablemodel 畢業(yè)設(shè)計(論文)畢業(yè)設(shè)計(論文)第第 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) 畢業(yè)設(shè)計(論文)畢業(yè)設(shè)計(論文)第第 3232 頁頁 共共 4444 頁頁 return true; /* public void setvalueat(object value, int row, int col) prowcol = value; firetablecellupdated(row, col); */ 密碼的安全性程序中注冊的登錄用戶的密碼不能以明文的形式存儲,那樣很不安全,所以數(shù)據(jù)庫中存儲的密碼文件要是加密后的密文,這個程序里選擇使用 md5加密用戶密碼。在 encode 類中實現(xiàn) md5 方法。java 實現(xiàn) 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;畢業(yè)設(shè)計(論文)畢業(yè)設(shè)計(論文)第第 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 錯誤處理程序運行后難免會有輸入錯誤,程序中出錯可以幫助我們很快的找到出錯地點,程序中數(shù)據(jù)庫方面的異常主要有 classnotfoundexception 和sqlexception,創(chuàng)建程序主界面方面則有只
50、exception,使用這些對象的printstacktrace()方法可以找到程序出錯的地方和出錯原因。畢業(yè)設(shè)計(論文)畢業(yè)設(shè)計(論文)第第 3434 頁頁 共共 4444 頁頁4 4 討論討論4.1 存在的問題及改進思想本程序的編寫歷時一個多月,在 windows xp jdk 1.5.0_1 平臺上測試通過,基本上實現(xiàn)了預(yù)期的目的,但功能還很不完善。鑒于本人精力水平有限,時間倉促,錯誤與不足之處在所難免,以待后續(xù)開發(fā)中不斷改進和完善。在后續(xù)開發(fā)中,準(zhǔn)備從以下幾方面著手:增加動態(tài)信息分布功能,允許員工通過網(wǎng)絡(luò)查詢自己的資料,并且進行確認(rèn)。增強數(shù)據(jù)查詢功能,在關(guān)鍵字查詢的基礎(chǔ)上增加分類查詢。
51、總之,本程序編寫不是一個終點,而是一個起點。java 在不斷發(fā)展,它的強項并不是使用 j2se 來開發(fā)桌面應(yīng)用程序,而更多的應(yīng)用是使用 j2ee開發(fā)網(wǎng)絡(luò)應(yīng)用程序,盡管它在開發(fā)桌面程序上占有很多優(yōu)勢。java 博大精深,現(xiàn)在唯有不斷學(xué)習(xí)和吸收,才能趕上時代的進步。畢業(yè)設(shè)計(論文)畢業(yè)設(shè)計(論文)第第 3535 頁頁 共共 4444 頁頁5 5 結(jié)束語結(jié)束語做什么事情都要有個好的開頭,一個應(yīng)用程序在開發(fā)之前的需求分析工作影響整個開發(fā)過程。從需求分析入手,做好各項準(zhǔn)備工作程序各子功能的確定、數(shù)據(jù)庫的設(shè)計等,然后選擇開發(fā)環(huán)境、開發(fā)工具,一步一步,循序漸進,最終把一個好的企業(yè)人事管理系統(tǒng)展現(xiàn)在各位用戶的
52、眼前。畢業(yè)設(shè)計(論文)畢業(yè)設(shè)計(論文)第第 3636 頁頁 共共 4444 頁頁6 6 致謝致謝我的畢業(yè)設(shè)計工作是在 xxx 老師指導(dǎo)下進行的。從選題、設(shè)計、編程、調(diào)試、撰寫論文等環(huán)節(jié),都是在 xxx 老師精心指導(dǎo)下完成。苗連強老師工作認(rèn)真、治學(xué)嚴(yán)謹(jǐn)。在畢業(yè)設(shè)計期間,不僅使我學(xué)習(xí)到了知識,而且還得到了綜合鍛煉和提高。同時,也更加懂得了如何做一個合格的大學(xué)生去面對未來。在此,我十分感謝 xxx 老師的精心指導(dǎo)!同時我也感謝在三年中教過我的所有老師!感謝幫助我的所有同學(xué)!畢業(yè)設(shè)計(論文)畢業(yè)設(shè)計(論文)第第 3737 頁頁 共共 4444 頁頁7 7 參考文獻1. 張孝祥 java 就業(yè)培訓(xùn)教程
53、清華大學(xué)出版社,20032. 侯捷 java 編程思想(第二版) 機械工業(yè)出版社 20023. 王路 j2se 核心 api 參考與實例 中國水利水電出版社,20024. 李東升 jdbc 數(shù)據(jù)庫編程與 j2ee. 電子工業(yè)出版社,20045. 竇魏 java 軟件開發(fā)(第二版) 人民郵電出版社,20046. 殷兆麟 java 網(wǎng)絡(luò)編程. 國防工業(yè)出版社,20017. 林志揚 精通 java swing 程序設(shè)計 中國鐵道出版社 2002畢業(yè)設(shè)計(論文)畢業(yè)設(shè)計(論文)第第 3838 頁頁 共共 4444 頁頁8 8 附錄:程序附錄:程序 apiapi 文檔文檔1 1、 packagepack
54、age dwldwl classclass addnewaddnewjava.lang.object dwl.addnewdwl.addnewpublic class addnewaddnew extends java.lang.object實現(xiàn)添加新員工的界面,并且可以獲得員工的信息構(gòu)造方法摘要構(gòu)造方法摘要addnewaddnew(java.sql.connection conn) 初始化界面,并從數(shù)據(jù)庫中取出需要的信息方法摘要方法摘要 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該類實現(xiàn)創(chuàng)建人事變動的窗口構(gòu)造方法摘要構(gòu)造方法摘要changechange(java.sql.connection
56、conn) 初始化界面,并從數(shù)據(jù)庫中取出需要的信息方法摘要方法摘要 void caretupdatecaretupdate(javax.swing.event.caretevent e) 本類實現(xiàn)了 caretlistener 接口,該方法重寫接口中為實現(xiàn)的 caretupdate()方法, 該方法用于查找員工信息 java.lang.stringgetchangeinfogetchangeinfo() 取得人事變更窗口中的所有的信息 javax.swing.jpanelgetpanelgetpanel() 得到含有組件的容器 void statechangedstatechanged(jav
57、ax.swing.event.changeevent e) 本類實現(xiàn)了 changelistener 接口,該方法重寫接口中為實現(xiàn)的 statechanged()方法畢業(yè)設(shè)計(論文)畢業(yè)設(shè)計(論文)第第 3939 頁頁 共共 4444 頁頁3 3、 packagepackage dwldwlclassclass connectdbconnectdbjava.lang.object dwl.connectdbdwl.connectdbpublic class connectdbconnectdb extends java.lang.object該類實現(xiàn)連接數(shù)據(jù)庫的界面構(gòu)造方法摘要構(gòu)造方法摘要co
58、nnectdbconnectdb() 方法摘要方法摘要 boolean chackloginchacklogin(java.lang.string useinfo, java.sql.connection conn) 該方法實現(xiàn)檢查登陸用戶帳號密碼是否正確 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該類用于為每個需要數(shù)據(jù)庫中數(shù)據(jù)的窗口取出數(shù)據(jù)構(gòu)造方法摘要構(gòu)造方法摘要getdatagetdata() getdatagetda
60、ta(java.sql.connection conn)方法摘要方法摘要 java.lang.stringgetcolumnnamegetcolumnname() 得到 change 表的列名 java.lang.string getcontainsgetcontains(java.sql.resultset rschange) 把記錄集中的內(nèi)容轉(zhuǎn)化為二維數(shù)組 intgetidgetid() 取得指定要添加的新員工的 id java.util.vector getsystemgetsystem(java.lang.string tablename) 畢業(yè)設(shè)計(論文)畢業(yè)設(shè)計(論文)第第 404
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- T-ZSA 272-2024 高磁導(dǎo)率低矯頑力FeNiMnSi 軟磁合金
- 二零二五年度養(yǎng)老公寓入住與心理咨詢服務(wù)合同
- 二零二五年度房屋買賣及家居升級借款協(xié)議
- 2025年度生鮮配送與電商渠道合作合同范本
- 二零二五年度互聯(lián)網(wǎng)公司業(yè)績對賭協(xié)議約定倍收益合同
- 2025年度退房合同租賃期滿通知協(xié)議
- 二零二五年度人工智能產(chǎn)業(yè)股東入股合同
- 2025年度新能源技術(shù)研發(fā)中心委托管理合同協(xié)議書
- 二零二五年度健身俱樂部合伙開店經(jīng)營協(xié)議
- 二零二五年度手機行業(yè)經(jīng)銷商返利管理細則
- 2020-2024年五年高考歷史真題分類匯編(全國)專題14 中國古代史(非選擇題)(解析版)
- 電子教案-《3D打印技術(shù)概論》
- 安全生產(chǎn)責(zé)任體系重點崗位履職清單
- 四川省成都市2024年中考道德與法治真題試卷(含答案)
- 《東北財經(jīng)大學(xué)審計》課件
- 牧童謠課件教學(xué)
- 大學(xué)物理實驗(緒論)學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 圖書出版項目合作協(xié)議
- 《現(xiàn)代家政導(dǎo)論》電子教案 2.2模塊二項目二家庭制度認(rèn)知
- 商務(wù)禮儀課件教學(xué)課件
- 部編版七年級歷史下冊全冊導(dǎo)學(xué)案
評論
0/150
提交評論