MVC 网上招聘系统的设计与实现java jsp 程序设计 课程设计 毕业设计-附源码02135
???????因上傳問(wèn)題? 只上傳了文案 圖片未上傳????
網(wǎng)上招聘系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
摘 ?要
隨著時(shí)代的發(fā)展,中國(guó)的互聯(lián)網(wǎng)技術(shù)愈加成熟,已經(jīng)有越來(lái)越多的社會(huì)群體開(kāi)始學(xué)會(huì)使用互聯(lián)網(wǎng)技術(shù),整個(gè)社會(huì)正在朝著智能化、信息化的方向前進(jìn)。有了互聯(lián)網(wǎng),用戶便可以足不出戶地利用互聯(lián)網(wǎng)技術(shù)使得自己的生活更加便捷。因此,為了滿足用戶的龐大需求,網(wǎng)上招聘系統(tǒng)應(yīng)運(yùn)而生。
本系統(tǒng)整體基于B/S架構(gòu),采用MyBatis框架,運(yùn)用Java中的Servlet、Jsp等關(guān)鍵技術(shù),并結(jié)合Oracle數(shù)據(jù)庫(kù)的使用,為招聘者和求職者搭建了一個(gè)高效、便利的網(wǎng)絡(luò)平臺(tái)。本系統(tǒng)分別為求職者和招聘者提供了信息注冊(cè)功能,登錄功能和信息維護(hù)功能。除此之外,求職者可以選擇發(fā)布、撤銷或打印自己的簡(jiǎn)歷,也可以瀏覽到企業(yè)實(shí)時(shí)的招聘信息,從而選擇合適的企業(yè)應(yīng)聘。招聘者可以選擇發(fā)布或撤銷自己的招聘信息,也可以瀏覽到求職人員的信息,選擇是否同意他的應(yīng)聘請(qǐng)求,并向其發(fā)送通知。
關(guān)鍵詞:Java;Servlet;Oracle;招聘系統(tǒng)
Design and implementation of online recruitment system
Abstract
With the development of the times, China's Internet technology is becoming more and more mature, more and more people began to learn to use the Internet, the whole society is moving in the direction of information technology, intelligent. With the Internet, people can make use of the Internet technology to make their lives more convenient. Therefore, in order to meet the needs of people, online recruitment system came into being.
The whole system is based on B/S architecture, using MyBatis framework, the key technologies in java servlet and JSP, combined with the use of Oracle database, build an efficient and convenient platform for job seekers and recruiters. This system provides information registration function, login function and information maintenance function for job seekers and employers. In addition, job seekers can publish, revoke, print your resume, you can also browse to the enterprise real-time recruitment information, in order to select the right candidates. Recruiters can publish, revoke their recruitment information, you can browse to the job seekers information, choose whether or not to agree to his request, and sent a notice to him.
Key words:?Java; Servlet;?Oracle; recruitment?system
目??錄
摘 ?要
Abstract
1 ?緒 論
1.1 開(kāi)發(fā)背景
1.2 開(kāi)發(fā)意義
1.3 國(guó)內(nèi)外研究現(xiàn)狀
1.4 論文結(jié)構(gòu)
2 ?相關(guān)技術(shù)原理和開(kāi)發(fā)工具
2.1 程序語(yǔ)言的選擇
2.1.1 Java概述
2.1.2 Java特點(diǎn)
2.1.3 Servlet簡(jiǎn)介
2.2 Oracle數(shù)據(jù)庫(kù)
2.3 B/S模式
2.3.1 B/S架構(gòu)概述
2.3.2 B/S架構(gòu)的工作原理
2.3.3 B/S架構(gòu)與C/S架構(gòu)的比較
2.4 開(kāi)發(fā)工具
2.4.1 建模工具M(jìn)icrosoft Visio
2.4.2 編碼工具Eclipse
2.4.3 數(shù)據(jù)庫(kù)連接工具Navicat
2.5 開(kāi)發(fā)環(huán)境
3 ?系統(tǒng)可行性研究
3.1系統(tǒng)可行性研究概述
3.2系統(tǒng)可行性研究的目的和流程
3.3項(xiàng)目評(píng)估
4 ?系統(tǒng)需求分析
4.1系統(tǒng)功能分析
4.1.1 用例圖
4.1.2 數(shù)據(jù)流圖
4.1.3 數(shù)據(jù)字典
4.2 系統(tǒng)數(shù)據(jù)庫(kù)需求分析
5 ?系統(tǒng)設(shè)計(jì)
5.1系統(tǒng)類圖
5.2系統(tǒng)功能模塊劃分
5.2.1 模塊圖
5.2.2 個(gè)人信息管理模塊
5.2.3 簡(jiǎn)歷管理模塊
5.2.4 求職申請(qǐng)模塊
5.2.5 企業(yè)信息管理模塊
5.2.6 招聘管理模塊
5.3系統(tǒng)總體設(shè)計(jì)
5.3.1 系統(tǒng)設(shè)計(jì)思想
5.3.2 系統(tǒng)體系架構(gòu)
5.4 數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì)
5.4.1 關(guān)系型數(shù)據(jù)模型
5.4.2 數(shù)據(jù)表設(shè)計(jì)
6 ?系統(tǒng)實(shí)現(xiàn)
6.1 登錄模塊
6.2 注冊(cè)模塊
6.3 信息修改模塊
6.4 查詢模塊
6.5 簡(jiǎn)歷管理模塊
6.6 應(yīng)聘者管理模塊
6.7 安全退出
7 ?系統(tǒng)測(cè)試
7.1 測(cè)試方法
7.2測(cè)試環(huán)境
7.3測(cè)試結(jié)果
7.4系統(tǒng)評(píng)價(jià)
8 ?結(jié)束語(yǔ)
8.1結(jié)論
8.2展望
參考文獻(xiàn)
致 謝
附 ?錄:外文原文
????????中文翻譯 52
1??緒 論
1.1 開(kāi)發(fā)背景
伴隨著中國(guó)經(jīng)濟(jì)的飛速發(fā)展,城市化進(jìn)程的加快,求職者隊(duì)伍的不斷壯大,傳統(tǒng)人才招聘的弊端初露端倪。首先,傳統(tǒng)人才應(yīng)聘的形式是求職者和企業(yè)的負(fù)責(zé)人面對(duì)面地交流。這就需要企業(yè)和求職者提前規(guī)劃自己的時(shí)間,準(zhǔn)備大量的紙質(zhì)材料,并選好舉辦招聘會(huì)的地點(diǎn),這一系列流程都需要雙方把大量的精力投入到準(zhǔn)備活動(dòng)中去,使得應(yīng)聘還未開(kāi)始,成本就已大幅增加。其次,企業(yè)在篩選數(shù)以百計(jì),甚至數(shù)以萬(wàn)計(jì)簡(jiǎn)歷的時(shí)候,往往會(huì)由于閱讀疲勞,漏掉一些真正有價(jià)值的簡(jiǎn)歷,使得企業(yè)喪失掉一批有用的人才。對(duì)于求職者而言,也會(huì)錯(cuò)失掉良好的機(jī)會(huì),令人惋惜。
隨著國(guó)內(nèi)互聯(lián)網(wǎng)飛速的發(fā)展,用戶已經(jīng)越來(lái)越習(xí)慣于使用互聯(lián)網(wǎng)傳遞信息,接收信息,利用互聯(lián)網(wǎng)技術(shù)使得自己的生活更加便利,快捷。在這樣一種大趨勢(shì)下,網(wǎng)上人才招聘系統(tǒng)出現(xiàn)在了用戶的眼前。網(wǎng)上人才招聘系統(tǒng)相對(duì)于傳統(tǒng)的人才招聘,有以下幾點(diǎn)優(yōu)勢(shì):
?????1.方便快捷。對(duì)于求職者來(lái)說(shuō),只要在互聯(lián)網(wǎng)上向有意向的企業(yè)投遞了個(gè)人簡(jiǎn)歷,便可等候企業(yè)的通知信息;對(duì)于企業(yè)來(lái)說(shuō),只要點(diǎn)一下鼠標(biāo)便可同意求職者的申請(qǐng)。
?????2.?選擇多。由于招聘信息量豐富、使用網(wǎng)絡(luò)招聘的人數(shù)基數(shù)大,在大量的職位數(shù)據(jù)庫(kù)中,求職者對(duì)于適合職位的選擇也就越多。
?????3.?費(fèi)用少。對(duì)于求職者來(lái)說(shuō),節(jié)省了不少成本,如:交通費(fèi)、簡(jiǎn)歷制作費(fèi)、通訊費(fèi)等不少費(fèi)用。除此之外,還有效地避免了招聘會(huì)現(xiàn)場(chǎng)異常擁擠、交流效果不盡如人意、選擇職位盲目性大的問(wèn)題。對(duì)于企業(yè)來(lái)說(shuō),節(jié)省了辦理招聘會(huì)的各種費(fèi)用。
?正是由于以上種種優(yōu)勢(shì),越來(lái)越多的求職者選擇網(wǎng)絡(luò)求職成為自己的應(yīng)聘方式。
1.2 開(kāi)發(fā)意義
本系統(tǒng)開(kāi)發(fā)的意義在于突破傳統(tǒng)人才招聘的模式,給招聘者和求職者提供一個(gè)便利、高效、準(zhǔn)確的網(wǎng)絡(luò)招聘平臺(tái),使得雙方可以在把成本降到最低的前提下,在更快的時(shí)間獲得更加準(zhǔn)確的信息,從而滿足企業(yè)的用人需求,實(shí)現(xiàn)求職者的自身價(jià)值。
1.3 國(guó)內(nèi)外研究現(xiàn)狀
在國(guó)外,運(yùn)用互聯(lián)網(wǎng)進(jìn)行人才招聘的企業(yè)和求職者不在少數(shù),許多優(yōu)秀的第三方人才招聘網(wǎng)站也脫穎而出。在美國(guó),優(yōu)秀的人才招聘網(wǎng)站主要有:
二十多個(gè)國(guó)家設(shè)立分部或辦事處,并且建立了22種不同語(yǔ)言的招聘網(wǎng)站。其已具備國(guó)際領(lǐng)先的網(wǎng)路服務(wù)經(jīng)驗(yàn),以及龐大的個(gè)人簡(jiǎn)歷數(shù)據(jù)庫(kù)。
在國(guó)內(nèi),也有越來(lái)越多的網(wǎng)絡(luò)平臺(tái)興起開(kāi)來(lái),著名的有前程無(wú)憂、智聯(lián)招聘、58同城等。據(jù)數(shù)據(jù)統(tǒng)計(jì),2016年中國(guó)互聯(lián)網(wǎng)招聘市場(chǎng)份額正在逐步增加。其中前程無(wú)憂占比29.7%,智聯(lián)招聘占比26.5%,58趕集合并后共同占比26.3%,其他廠商占比17.5%。與此同時(shí),傳統(tǒng)招聘網(wǎng)站的市場(chǎng)份額正在逐漸縮小,2016年,中國(guó)互聯(lián)網(wǎng)招聘公司手機(jī)應(yīng)用軟件的使用用戶規(guī)模達(dá)720萬(wàn)人之多,單日人均使用次數(shù)為5.5次,單日人均使用時(shí)長(zhǎng)達(dá)15分鐘,用戶活躍度較去年同期有所增長(zhǎng),手機(jī)等移動(dòng)端的發(fā)展趨勢(shì)較好。
許多國(guó)家的用戶已經(jīng)對(duì)網(wǎng)絡(luò)招聘的方式深諳其道。網(wǎng)絡(luò)招聘已經(jīng)成為當(dāng)代大學(xué)畢業(yè)生和職員求職應(yīng)聘的首選方式。在未來(lái)的幾年里,網(wǎng)絡(luò)招聘會(huì)進(jìn)一步的發(fā)展和完善,受到更多人的青睞。
1.4 論文結(jié)構(gòu)
本論文按照軟件工程標(biāo)準(zhǔn)開(kāi)發(fā)流程進(jìn)行敘述。其主要由以下幾個(gè)章節(jié)構(gòu)成:
2 ?相關(guān)技術(shù)原理和開(kāi)發(fā)工具
2.1 程序語(yǔ)言的選擇
2.1.1?Java概述
Java是一種面向?qū)ο蟮摹⒖梢跃帉?xiě)許多跨平臺(tái)應(yīng)用軟件的第三代程序設(shè)計(jì)語(yǔ)言。在1995年5月,由美國(guó)的Sun公司推出。?Java不再像C語(yǔ)言那樣是面向過(guò)程的語(yǔ)言,也不像C++擁有眾多復(fù)雜的機(jī)制,難以理解。準(zhǔn)確地說(shuō),Java是一種純的面向?qū)ο蟮恼Z(yǔ)言。在Java的世界里,萬(wàn)物皆對(duì)象。正是由于這一種思想,開(kāi)拓了創(chuàng)程序員的思維,從而誕生出了更先進(jìn)的編程技術(shù)。
2.1.2?Java特點(diǎn)
?Java的應(yīng)用范圍很廣,開(kāi)發(fā)人員可以用Java開(kāi)發(fā)C/S應(yīng)用程序、B/S應(yīng)用程序、手機(jī)應(yīng)用軟件以及部分小游戲等。它主要具有以下特點(diǎn):
1.面向?qū)ο筇匦?#xff1a;在Java的概念里,任何事物都可看成對(duì)象,哪怕是類本身還是類里面的成員變量和成員方法都可以看成對(duì)象。Java編寫(xiě)的程序之所以能夠輕而易舉地?cái)U(kuò)展,正是由于它是基于對(duì)象模型的。在現(xiàn)實(shí)生活中,類就是物體共有屬性和行為的抽象。而對(duì)象則是類的具體實(shí)例。比如:一個(gè)具體的蘋(píng)果就是水果類的一個(gè)實(shí)例。
2.平臺(tái)無(wú)關(guān)性:與許多其它編程語(yǔ)言不同的是,Java代碼在被編譯完成的時(shí)候,它會(huì)生成一種二進(jìn)制的文件(.class文件),這種文件獨(dú)立于平臺(tái),運(yùn)行在虛擬機(jī)(JVM)中。程序不論是在Windows或Linux環(huán)境下,都可以被執(zhí)行,只不過(guò)不同平臺(tái)的虛擬機(jī)是不同的。
3.簡(jiǎn)單:Java設(shè)計(jì)的初衷便是簡(jiǎn)單易學(xué)。只要你能夠準(zhǔn)確、快速地掌握J(rèn)ava面向?qū)ο蟮奶匦?#xff0c;其他的概念便可以無(wú)師自通,遇到的大多數(shù)便可迎刃而解。從語(yǔ)言的難易程度看,Java要比 C++簡(jiǎn)單,C++中許多不容易掌握的概念如多繼承、指針等概念都被Java所拋棄。這樣的改進(jìn),不僅不會(huì)降低Java的實(shí)用性,反而大大增強(qiáng)了Java的體系架構(gòu),使得Java更加精簡(jiǎn),可以應(yīng)用于更廣的領(lǐng)域。
4.安全:正是由于Java中不支持指針的概念,程序員沒(méi)有機(jī)會(huì)去直接操作內(nèi)存空間,這樣就有效地防止了程序運(yùn)行時(shí)堆棧溢出等問(wèn)題,程序不會(huì)輕易地崩潰。
5.持久耐用:Java檢測(cè)機(jī)制比較完善。有編譯時(shí)錯(cuò)誤檢查和運(yùn)行時(shí)檢查兩種方式,這樣就能夠檢測(cè)出更多地錯(cuò)誤,從而使得開(kāi)發(fā)人員糾正錯(cuò)誤,使程序長(zhǎng)久穩(wěn)定地運(yùn)行。
6.多線程:所謂多線程,就是在同一段時(shí)間內(nèi),程序可以完成多個(gè)任務(wù)。Java的多線程功能,由JVM本身提供,開(kāi)發(fā)人員只要利用JDK中提供的類和接口便可以輕松地實(shí)現(xiàn)多線程功能。多線程可以使程序高效地運(yùn)行,在大型系統(tǒng)或網(wǎng)站中運(yùn)用十分廣泛。多線程的思想是優(yōu)秀發(fā)人員必不可少的品質(zhì)。
7.動(dòng)態(tài):類是Java 程序的基本構(gòu)成單位。有些類是JDK提供的,有一些是從第三方框架中引入的,再者就是自己編寫(xiě)。又因?yàn)轭愂沁\(yùn)行時(shí)被動(dòng)態(tài)裝載在JVM中的,這就使得 Java 可以在網(wǎng)絡(luò)環(huán)境中動(dòng)態(tài)地維護(hù)程序,實(shí)時(shí)地顯示更新后的數(shù)據(jù)。
總地來(lái)說(shuō),Java是為了滿足新時(shí)代開(kāi)發(fā)人員的需要而誕生的。它在C++的基礎(chǔ)上,取其精華,去其糟粕,并且高度抽象了現(xiàn)實(shí)生活中的物體,從而達(dá)到一種簡(jiǎn)單實(shí)用、面向?qū)ο蟆踩煽俊⒏咝阅芎投嗑€程的狀態(tài)。
2.1.3 Servlet簡(jiǎn)介
在這個(gè)信息化時(shí)代,計(jì)算機(jī)對(duì)數(shù)據(jù)的處理顯得尤為重要。傳統(tǒng)的靜態(tài)網(wǎng)頁(yè)技術(shù)(HTML、CSS等)已經(jīng)無(wú)法解決大數(shù)據(jù)發(fā)展所帶來(lái)的問(wèn)題,無(wú)法實(shí)時(shí)地處理上萬(wàn)條乃至上億條信息。因此,動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)應(yīng)運(yùn)而生。Servlet便是其中的佼佼者。
Servlet不是一個(gè)純粹的新技術(shù),它是在Java的基礎(chǔ)上發(fā)展而來(lái)的。準(zhǔn)確的說(shuō),Servlet就是使用Java里一些相關(guān)的類庫(kù)開(kāi)發(fā)出來(lái)的程序。開(kāi)發(fā)者通過(guò)Servlet技術(shù),便可搭建出一個(gè)基于B/S架構(gòu)的系統(tǒng),它可以動(dòng)態(tài)地處理數(shù)據(jù),并將數(shù)據(jù)返回到瀏覽器中,用戶只需刷新一下網(wǎng)頁(yè)便可瀏覽到實(shí)時(shí)地信息。
由于Servlet本質(zhì)上就是Java程序,它具備Java語(yǔ)言的一切特點(diǎn)。除此之外,它還具備額外的一些優(yōu)點(diǎn):
Serlvet的運(yùn)行原理如圖2-1所示。
圖2-1 servlet原理圖
2.2 Oracle數(shù)據(jù)庫(kù)
Oracle全稱是Oracle關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),是甲骨文公司旗下的一款產(chǎn)品。Oracle數(shù)據(jù)庫(kù)已經(jīng)成為世界上最為流行,被眾多廠商廣泛使用的關(guān)系型數(shù)據(jù)庫(kù)產(chǎn)品。不論是在小型、中型還是大型計(jì)算機(jī)中,不論系統(tǒng)是基于客戶機(jī)/服務(wù)器架構(gòu),還是基于瀏覽器/服務(wù)器架構(gòu),它都可以高效地運(yùn)行。除此之外,Oracle還在已有的結(jié)構(gòu)性查詢語(yǔ)言(SQL)基礎(chǔ)上,結(jié)合自身產(chǎn)品的特性,創(chuàng)造出了一套符合自身特點(diǎn)的數(shù)據(jù)庫(kù)語(yǔ)言。
2.3 B/S模式
2.3.1 B/S架構(gòu)概述
B/S架構(gòu)(Browser/Server,瀏覽器/服務(wù)器架構(gòu)),是當(dāng)下最流行的一種網(wǎng)絡(luò)架構(gòu)模式。這種模式的客戶端由瀏覽器充當(dāng),這樣做的好處之一便是客戶端簡(jiǎn)單易維護(hù)。因?yàn)闉g覽器的開(kāi)發(fā)是由各個(gè)瀏覽器廠商負(fù)責(zé)的,系統(tǒng)開(kāi)發(fā)人員并不需要參與其中,只需要負(fù)責(zé)服務(wù)器端系統(tǒng)的實(shí)現(xiàn)便可。除此之外,在服務(wù)器端并不需要運(yùn)行大量的程序,這樣做的好處在于可以釋放服務(wù)器上的大量資源,也減輕了服務(wù)器端程序開(kāi)發(fā)以及后期維護(hù)的成本。
對(duì)于用戶來(lái)說(shuō)使用起來(lái)也非常輕松,用戶在電腦上只需要安裝一個(gè)瀏覽器,如火狐、IE、谷歌等,不需要像QQ一樣下載專門(mén)的客戶端軟件,便可輕松地訪問(wèn)需要的系統(tǒng)或網(wǎng)站。
2.3.2 B/S架構(gòu)的工作原理?
用戶打開(kāi)瀏覽器,在瀏覽器中的地址欄中輸入要訪問(wèn)的地址,即向服務(wù)器發(fā)送請(qǐng)求。請(qǐng)求發(fā)送成功后,服務(wù)器對(duì)收到的請(qǐng)求進(jìn)行處理。在處理過(guò)程中,主要是對(duì)其中的請(qǐng)求信息進(jìn)行解析,如果這一過(guò)程需要訪問(wèn)數(shù)據(jù)庫(kù),服務(wù)器便會(huì)繼續(xù)訪問(wèn)數(shù)據(jù)庫(kù)從中得到需要的數(shù)據(jù),結(jié)合服務(wù)器內(nèi)部的邏輯處理程序最終定位到用戶需要的資源,返回給用戶一個(gè)響應(yīng)。最后用戶即可在顯示器上看到呈現(xiàn)出來(lái)的頁(yè)面。具體原理如圖2-2所示。
圖2-2 B/S架構(gòu)原理圖
2.3.3 B/S架構(gòu)與C/S架構(gòu)的比較
C/S架構(gòu)軟件(即客戶機(jī)/服務(wù)器架構(gòu))分為客戶端和服務(wù)器端軟件兩種。客戶端不僅要像B/S架構(gòu)中的瀏覽器具備數(shù)據(jù)接收以及效果呈現(xiàn)的功能,還需要具備一定的業(yè)務(wù)邏輯處理能力。這就容易導(dǎo)致客戶端負(fù)載嚴(yán)重,功能復(fù)雜。開(kāi)發(fā)的成本也要有所增加。客戶端軟件的安裝更是對(duì)用戶的電腦配置提出了要求,越先進(jìn)的軟件對(duì)軟硬件的配置要求越高,很有可能因?yàn)橛脩綦娔X配置的問(wèn)題,導(dǎo)致項(xiàng)目的取消。在后期的維護(hù)中,除了對(duì)服務(wù)器維護(hù)外,開(kāi)發(fā)人員還要單獨(dú)對(duì)客戶端軟件進(jìn)行維護(hù),對(duì)不同配置的電腦還要開(kāi)發(fā)出不同的維護(hù)版本,復(fù)雜度可想而知。
B/S(瀏覽器/服務(wù)器模式)架構(gòu)則是為了彌補(bǔ)C/S架構(gòu)缺陷而產(chǎn)生的。它是對(duì)C/S架構(gòu)的一種改進(jìn)。在這種架構(gòu)下,軟件的業(yè)務(wù)邏輯功能完全放在WEB服務(wù)器端實(shí)現(xiàn),開(kāi)發(fā)人員不必開(kāi)發(fā)出客戶端軟件,客戶端也僅僅需要接收數(shù)據(jù)、展示頁(yè)面即可。這是一種先進(jìn)的開(kāi)發(fā)理念和開(kāi)發(fā)技術(shù)。這種架構(gòu)已經(jīng)成為當(dāng)今軟件開(kāi)發(fā)的首選體系架構(gòu)。企業(yè)的管理軟件大多采用這種架構(gòu)。社交功具或一些網(wǎng)絡(luò)游戲大多采用C/S架構(gòu)。
2.4 開(kāi)發(fā)工具
2.4.1?建模工具M(jìn)icrosoft?Visio
Microsoft Visio是微軟旗下的一款具備圖形繪制、圖表繪制、模型構(gòu)建等多種功能的大型軟件。Visio最大的特點(diǎn)是它自身提供了許多模板供用戶選擇,而這些模板又涵蓋了網(wǎng)絡(luò)、工程、軟件等眾多應(yīng)用領(lǐng)域,這就成為了很多開(kāi)發(fā)人員的不二選擇。在應(yīng)用當(dāng)中,開(kāi)發(fā)人員只需選好自己需要的模板,將Visio中提供的部件拖拽到自己的項(xiàng)目中即可。
所謂“一圖勝千言”,利用Visio就可以輕而易舉的構(gòu)建出許多一目了然的模型,這樣就大大提高了開(kāi)發(fā)效率,減小了項(xiàng)目失敗的風(fēng)險(xiǎn),用戶也更加放心。
Microsoft Visio于2000年被微軟收購(gòu),在這十幾年當(dāng)中,發(fā)布過(guò)將近17個(gè)版本。在該項(xiàng)目中,使用的是Visio?2013專業(yè)版。
2.4.2?編碼工具Eclipse
Eclipse主要是為開(kāi)發(fā)Java項(xiàng)目而搭建的開(kāi)放平臺(tái)。除此之外,它還支持C、C++、PHP等語(yǔ)言。Eclipse是一組集成開(kāi)發(fā)環(huán)境(IDE),集眾多插件于一身,使用起來(lái)十分靈活。開(kāi)發(fā)人員可以對(duì)Eclipse中的一些插件進(jìn)行取舍,使得軟件高效運(yùn)行;也可以在Eclipse中切換開(kāi)發(fā)視圖,配置一些參數(shù),不必像以前再進(jìn)行一些繁瑣的操作。
Eclipse于1994年被IBM和OTI兩家公司所創(chuàng)建。后來(lái)IBM提出Eclipse開(kāi)源項(xiàng)目的概念,被后來(lái)大約150家公司共同開(kāi)發(fā),以宇宙中星球的名字作為它每一代的版本代號(hào)。在該項(xiàng)目中,使用的是Elipse?Mars版本。
2.4.3?數(shù)據(jù)庫(kù)連接工具Navicat
Navicat是一套數(shù)據(jù)庫(kù)管理工具,它可以連接到SQL Server、MySql、Oracle等主流數(shù)據(jù)庫(kù)管理系統(tǒng),簡(jiǎn)化了數(shù)據(jù)庫(kù)的管理,方便了開(kāi)發(fā)人員的操作,降低了數(shù)據(jù)庫(kù)管理的成本。
由于Navicat是基于圖形用戶界面的,開(kāi)發(fā)人員直接可以通過(guò)Navicat提供的功能,不必在命令行中輸入SQL語(yǔ)句,便可以直觀的操作數(shù)據(jù)庫(kù),管理數(shù)據(jù),實(shí)現(xiàn)增刪改查等操作。Navicat在提供便利的同時(shí),也對(duì)安全性加以保障,開(kāi)發(fā)人員并不需要擔(dān)心數(shù)據(jù)泄露的風(fēng)險(xiǎn)。
Navicat也有眾多版本,比如Navicat for MySQL、Navicat for Oracle等等。在該項(xiàng)目中,使用的是Navicat Premium版本。
2.5 開(kāi)發(fā)環(huán)境
電腦型號(hào):惠普242 G1?64位筆記本電腦
操作系統(tǒng):Windows10專業(yè)版
數(shù)據(jù)庫(kù)版本:Oracle10g XE
JDK版本:JDK1.8
服務(wù)器版本:apache-tomcat-8.0.24-windows-x64
3 ?系統(tǒng)可行性研究
3.1系統(tǒng)可行性研究概述
開(kāi)發(fā)者在開(kāi)發(fā)一個(gè)項(xiàng)目前,往往要考慮以下幾個(gè)問(wèn)題:這個(gè)項(xiàng)目有沒(méi)有做的價(jià)值;在現(xiàn)有的條件下以及規(guī)定時(shí)間內(nèi)是否可以把它完成;以及在做成之后,這個(gè)項(xiàng)目帶給整個(gè)團(tuán)隊(duì)的利益究竟有哪些等等。這一系列要考慮的問(wèn)題就可以看做對(duì)這個(gè)項(xiàng)目的可行性研究。
3.2系統(tǒng)可行性研究的目的和流程
可行性研究的目的就是在確保符合團(tuán)隊(duì)利益的基礎(chǔ)上,利用手上最精簡(jiǎn)的資源,探討這個(gè)項(xiàng)目是否可以按規(guī)定去完成。除此之外,可行性研究的關(guān)鍵不是提出具體的開(kāi)發(fā)方案,而是探討解決問(wèn)題的可能性。
在系統(tǒng)開(kāi)發(fā)生命周期中,往往會(huì)因?yàn)橄到y(tǒng)開(kāi)發(fā)人員對(duì)市場(chǎng)的了解不徹底,對(duì)技術(shù)的掌握不熟練,對(duì)項(xiàng)目的風(fēng)險(xiǎn)因素預(yù)估不足等原因,導(dǎo)致許多問(wèn)題都不能在合理的情況下得到解決。如果開(kāi)發(fā)人員能夠提前預(yù)測(cè)到可能出現(xiàn)的問(wèn)題,并且在經(jīng)過(guò)探討后,不能得出合理的應(yīng)對(duì)辦法,那么就應(yīng)該取消項(xiàng)目的開(kāi)發(fā)。這樣就能夠在人力、物力等方面避免不必要的損失。
系統(tǒng)可行性研究其主要流程為:分析人員對(duì)用戶提出的項(xiàng)目方案進(jìn)行簡(jiǎn)要的需求分析,在此基礎(chǔ)上,利用一些作圖工具或原型工具得到該系統(tǒng)的邏輯模型,接著利用邏輯模型探索出許多不同的解決辦法,最后從這些解決方案中找出代價(jià)最小的去進(jìn)行之后更深入的探討。
可行性研究往往可以從經(jīng)濟(jì)、技術(shù)、操作、法律這四個(gè)角度去討論項(xiàng)目的可行程度,也可以讓用戶一目了然地了解到項(xiàng)目的整體規(guī)范。下面將仔細(xì)從這四個(gè)方面解析:
1.經(jīng)濟(jì)可行性:主要從“成本-效益分析”的觀點(diǎn)出發(fā),通過(guò)對(duì)貨幣的時(shí)間價(jià)值、投資回收期、純收入等方面的研究,考量項(xiàng)目成本與收益之間的關(guān)系。
2.技術(shù)可行性:從開(kāi)發(fā)人員角度來(lái)說(shuō),考查的是其是否具備開(kāi)發(fā)這個(gè)項(xiàng)目的技術(shù)和綜合素質(zhì);從項(xiàng)目構(gòu)成來(lái)說(shuō),考察的是該項(xiàng)目的架構(gòu)是否合理,將來(lái)在開(kāi)發(fā)以及運(yùn)行的過(guò)程中不會(huì)出錯(cuò);從項(xiàng)目運(yùn)行的條件說(shuō),考查是否具備相應(yīng)的軟硬件環(huán)境。
3.操作可行性:項(xiàng)目的操作在其領(lǐng)域內(nèi)是否行得通。
4.法律可行性:確保該項(xiàng)目的開(kāi)發(fā)不會(huì)觸犯政治上或社會(huì)上的侵權(quán),不會(huì)違反任何一項(xiàng)法律條例。主要是從版權(quán)、專利等方面入手。
3.3項(xiàng)目評(píng)估
項(xiàng)目名稱:網(wǎng)上招聘系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
主要用戶:個(gè)人和企業(yè)
關(guān)鍵技術(shù):java、servlet、oracle
運(yùn)行環(huán)境:windows操作系統(tǒng)
前臺(tái)功能:為用戶呈現(xiàn)出操作界面,且界面美觀、布局合理,具備一定的前臺(tái)驗(yàn)證功能,要對(duì)用戶的操作具有引導(dǎo)性和提示性。
后臺(tái)功能:在用戶管理方面,包括注冊(cè)、登錄、信息修改等基本功能。除此之外,其他功能圍繞“招聘”這一活動(dòng)行為展開(kāi),主要包括各種信息的瀏覽、簡(jiǎn)歷的投遞、簡(jiǎn)歷的接收以及后續(xù)對(duì)簡(jiǎn)歷的回應(yīng)等等。
該項(xiàng)目在現(xiàn)有的人力、技術(shù)條件下,在符合法律規(guī)定的前提下,可以在規(guī)定時(shí)間內(nèi)按照上述要求將其實(shí)現(xiàn),并且有充足的時(shí)間對(duì)其進(jìn)行測(cè)試、調(diào)試,保證項(xiàng)目的正確性。總體來(lái)看,該項(xiàng)目具備開(kāi)發(fā)的可行性。
4??系統(tǒng)需求分析
需求分析就是在確定系統(tǒng)可以開(kāi)發(fā)的基礎(chǔ)上,將客戶對(duì)系統(tǒng)的口頭概述,經(jīng)由開(kāi)發(fā)人員的分析總結(jié),抽象為具體的需求用例,再形成需求規(guī)格說(shuō)明書(shū)的軟件開(kāi)發(fā)過(guò)程。可行性研究旨在探索目標(biāo)系統(tǒng)是否值得利用現(xiàn)有的資源去開(kāi)發(fā),問(wèn)題是否能夠在現(xiàn)有的技術(shù)上去解決。而需求分析旨在回答"系統(tǒng)應(yīng)該具備什么功能"的問(wèn)題,以確保將來(lái)開(kāi)發(fā)出來(lái)的系統(tǒng)能夠讓客戶滿意。
4.1系統(tǒng)功能分析
4.1.1 用例圖
網(wǎng)上人才招聘系統(tǒng)的用戶共分為兩類:個(gè)人用戶和企業(yè)用戶。
個(gè)人用戶的用例圖如圖4-1所示。
圖4-1 ?個(gè)人用戶用例圖
個(gè)人用戶可以管理自己的信息,管理自己的簡(jiǎn)歷,也可以實(shí)時(shí)瀏覽企業(yè)發(fā)布的招聘信息,按自己的要求篩選出合適的企業(yè)從而決定報(bào)名,并可以在企業(yè)應(yīng)答之后收到相應(yīng)的回復(fù)。
企業(yè)用戶的用例圖如圖4-2所示。
圖4-2 ?企業(yè)用戶用例圖
企業(yè)用戶可以管理本公司的登記信息,管理招聘公告,也可以實(shí)時(shí)瀏覽求職者的個(gè)人信息,決定是否錄用,并向其發(fā)送回復(fù)。
4.1.2 數(shù)據(jù)流圖
個(gè)人用戶業(yè)務(wù)的流程如圖4-3所示。
圖4-3??個(gè)人用戶業(yè)務(wù)流程的數(shù)據(jù)流圖
個(gè)人用戶在使用本系統(tǒng)時(shí),會(huì)先進(jìn)入到系統(tǒng)的登錄界面進(jìn)行登錄,如果沒(méi)有賬戶可用,則可以點(diǎn)擊登錄界面上的注冊(cè)按鈕注冊(cè)信息。在成功登錄后,則可以順利地進(jìn)入到主界面。個(gè)人用戶可以在主界面的目錄結(jié)構(gòu)中選擇相應(yīng)的提示按鈕進(jìn)行操作。比如:修改人個(gè)信息、瀏覽各企業(yè)發(fā)布的信息、應(yīng)聘心儀的企業(yè)、打印自己的簡(jiǎn)歷等等。在完成操作后,用戶可以點(diǎn)擊退出按鈕,安全地退出系統(tǒng)。
企業(yè)用戶業(yè)務(wù)的流程如圖4-4所示。
圖4-4 ?企業(yè)用戶業(yè)務(wù)流程的數(shù)據(jù)流圖
企業(yè)用戶在使用本系統(tǒng)時(shí),同樣也會(huì)先經(jīng)過(guò)注冊(cè)、登錄等標(biāo)準(zhǔn)步驟。在成功登錄后,企業(yè)用戶會(huì)進(jìn)入到與個(gè)人用戶不同的主界面。企業(yè)用戶可以在其主界面上瀏覽人才庫(kù)信息、檢索出自己想要的人才信息、管理自己的招聘信息。也可在求職者應(yīng)聘之后,選擇是否同意他的請(qǐng)求。在企業(yè)用戶進(jìn)行完一系列操作后,同樣可以安全退出系統(tǒng)。
4.1.3 數(shù)據(jù)字典
數(shù)據(jù)字典是對(duì)數(shù)據(jù)流圖中出現(xiàn)信息的詳細(xì)描述。它的主要作用是供開(kāi)發(fā)者查閱,并為之后系統(tǒng)的分析、設(shè)計(jì)以及維護(hù)階段提供詳細(xì)準(zhǔn)確的文檔說(shuō)明。主要由數(shù)據(jù)流、數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)基本項(xiàng)和加工條目4部分組成。下面是有關(guān)個(gè)人業(yè)務(wù)數(shù)據(jù)流圖的數(shù)據(jù)字典:?????????????????????????????????????????????????????????????????
數(shù)據(jù)流條目如表4-1所示。
表4-1 數(shù)據(jù)流條目表
| 名稱 | 組成 |
| 個(gè)人信息 | 賬號(hào)+密碼+姓名+性別+學(xué)校+生日+專業(yè)+電子郵件+薪資要求+聯(lián)系方式+個(gè)人評(píng)價(jià) |
| 新的個(gè)人信息 | 姓名+性別+學(xué)校+生日+專業(yè)+電子郵件+薪資要求+聯(lián)系方式+個(gè)人評(píng)價(jià) |
| 登錄信息 | 賬號(hào)+密碼 |
| 檢索信息 | 職位類別+薪資范圍+截止時(shí)間 |
| 企業(yè)職位信息 | 公司名稱+公司地址+職位需求+電子郵箱+聯(lián)系方式+薪資待遇|+公司簡(jiǎn)介 |
| 應(yīng)聘信息 | 個(gè)人信息+企業(yè)職位信息 |
數(shù)據(jù)項(xiàng)如表4-2所示。
表4-2 數(shù)據(jù)項(xiàng)表
| 名稱 | 類型 | 長(zhǎng)度 |
| 賬號(hào) | 字符型 | {字母}410 |
| 密碼 | 數(shù)字型 | 不為零 |
數(shù)據(jù)存儲(chǔ)條目如表4-3所示。
表4-3數(shù)據(jù)存儲(chǔ)條目表
| 文件名 | 組成 | 組成方式 |
| 個(gè)人信息表 | id+賬號(hào)+密碼+姓名+性別+學(xué)校+生日+專業(yè)+電子郵件+薪資要求+聯(lián)系方式 +個(gè)人評(píng)價(jià) | 索引文件,以id為主鍵 |
| 雇傭表 | id+個(gè)人表的id+企業(yè)表的id | 索引文件,以id為主鍵 |
加工條目如表4-4所示。
表4-4?部分加工條目表
| 加工名 | 編號(hào) | 輸入 | 輸出 | 加工邏輯 |
| 注冊(cè) | 1 | 個(gè)人信息 | 個(gè)人信息表 | IF信息合法 THEN錄入數(shù)據(jù)庫(kù) ELSE 重新輸入新的合法信息 ENDIF |
| 登錄 | 2 | 登錄信息 | IF賬號(hào)、密碼與數(shù)據(jù)庫(kù)中的信息匹配 THEN準(zhǔn)予登錄,并跳轉(zhuǎn)到主頁(yè)面 ELSE重新輸入合法信息 ENDIF | |
| 修改個(gè)人信息 | 3 | 新的個(gè)人信息 | 個(gè)人信息表 | IF信息合法 THEN錄入數(shù)據(jù)庫(kù) ELSE 重新輸入新的合法信息 ENDIF |
| 職位查詢 | 4 | 檢索信息 | 企業(yè)職位信息 | IF檢索信息不為空 THEN按照相應(yīng)的檢索條件檢索企業(yè)職位并返回給用戶 ELSE按照默認(rèn)方式排列企業(yè)職位信息并返回給用戶 ENDIF |
| 下載簡(jiǎn)歷 | 7 | 個(gè)人信息 | 返回當(dāng)前用戶的簡(jiǎn)歷并下載 | |
| 向企業(yè)應(yīng)聘 | 9 | 應(yīng)聘信息 | 應(yīng)聘表 | 根據(jù)求職者編號(hào)和企業(yè)編號(hào)錄入信息 |
4.2 系統(tǒng)數(shù)據(jù)庫(kù)需求分析
數(shù)據(jù)庫(kù)需求分析是整個(gè)數(shù)據(jù)庫(kù)設(shè)計(jì)的基礎(chǔ)和起點(diǎn),也是涉及數(shù)據(jù)庫(kù)內(nèi)容的軟件進(jìn)行系統(tǒng)開(kāi)發(fā)工作的重要基礎(chǔ)。在需求分析基礎(chǔ)上,對(duì)新系統(tǒng)中數(shù)據(jù)的邏輯模型通常采用實(shí)體--聯(lián)系圖(ER圖)來(lái)描述。系統(tǒng)的ER圖如圖4-5所示。
圖4-5 系統(tǒng)ER圖
該E-R圖包括:個(gè)人實(shí)體、企業(yè)實(shí)體和雇傭聯(lián)系這三個(gè)組成部分。其中,個(gè)人實(shí)體主要用來(lái)存儲(chǔ)個(gè)人求職者的信息,包括個(gè)人基本資料和自我評(píng)價(jià)。其目的是在招聘過(guò)程中供企業(yè)瀏覽。企業(yè)實(shí)體則用來(lái)存儲(chǔ)公司的信息,主要是為了讓求職者對(duì)公司有詳細(xì)的了解,從而決定是否應(yīng)聘該公司。雇傭聯(lián)系則闡明了二者之間多對(duì)多的關(guān)系,記錄著求職者和企業(yè)之間發(fā)生過(guò)的的招聘行為。
5??系統(tǒng)設(shè)計(jì)
經(jīng)過(guò)上一步需求分析階段的工作,通過(guò)建立由數(shù)據(jù)流圖,數(shù)據(jù)字典和一系列算法所描述并且定義的系統(tǒng)邏輯模型,系統(tǒng)必須擁有哪些功能的問(wèn)題已經(jīng)被解決了。現(xiàn)在將進(jìn)入系統(tǒng)設(shè)計(jì)階段,目的在于著手實(shí)現(xiàn)系統(tǒng)需求,就是要把邏輯模型轉(zhuǎn)變?yōu)槲锢砟P汀?/p>
5.1系統(tǒng)類圖
由于本系統(tǒng)后臺(tái)使用java作為開(kāi)發(fā)語(yǔ)言,所有的功能都是出現(xiàn)在類中的。在本系統(tǒng)中,類主要分為兩種:實(shí)體類和業(yè)務(wù)類。
實(shí)體類如圖5-1所示。
圖5-1實(shí)體類圖
實(shí)體類包括個(gè)人類、企業(yè)類和雇傭類。
其中,個(gè)人類(企業(yè)類)的作用是:將前臺(tái)獲取到的個(gè)人信息(公司信息)封裝到該類中,再按相應(yīng)的需求決定是否把這些信息錄入數(shù)據(jù)庫(kù)。此外,也可以將查詢到的個(gè)人信息(公司信息)封裝到該類中,發(fā)送給前端頁(yè)面進(jìn)行展示。雇傭類則是將每一個(gè)招聘行為記錄在雇傭表內(nèi),p_id和c_id表明這一招聘是發(fā)生在哪個(gè)求職者和哪個(gè)企業(yè)之間的,并且也會(huì)隨著企業(yè)用戶的操作進(jìn)行更新。
業(yè)務(wù)類如圖5-2所示。
圖5-2業(yè)務(wù)類圖
業(yè)務(wù)類包括個(gè)人業(yè)務(wù)類、公司業(yè)務(wù)類和雇傭業(yè)務(wù)類。
個(gè)人業(yè)務(wù)類中包含的方法及其各自的作用如下所示:
個(gè)人簡(jiǎn)歷
?公司業(yè)務(wù)類中包含的方法及其各自的作用如下所示:
雇傭業(yè)務(wù)類中包含的方法及其各自的作用如下所示:
5.2系統(tǒng)功能模塊劃分
5.2.1 模塊圖
結(jié)合需求分析階段的數(shù)據(jù)流圖及數(shù)據(jù)字典,得出了系統(tǒng)的功能模塊圖。該系統(tǒng)通過(guò)對(duì)用戶類型的區(qū)分,分為個(gè)人用戶管理和企業(yè)用戶管理兩大模塊。系統(tǒng)功能的模塊圖如圖5-3所示。
圖5-3功能模塊圖
5.2.2 個(gè)人信息管理模塊
信息管理模塊是整個(gè)系統(tǒng)中最為基礎(chǔ),但也是最為重要的的一環(huán)。因?yàn)樵谥蟮哪K中,所有的操作都圍繞著數(shù)據(jù)、信息進(jìn)行。個(gè)人信息管理模塊的功能就是確保個(gè)人用戶在使用系統(tǒng)時(shí),個(gè)人的信息是完整的、準(zhǔn)確的。該模塊又劃分為以下幾個(gè)子模塊:
5.2.3 簡(jiǎn)歷管理模塊
簡(jiǎn)歷管理模塊包括個(gè)人用戶對(duì)自己簡(jiǎn)歷管理的所有操作。具體體現(xiàn)在以下幾個(gè)方面:
5.2.4 求職申請(qǐng)模塊
求職申請(qǐng)模塊是該系統(tǒng)的核心模塊。個(gè)人用戶只有通過(guò)使用該模塊的一些功能,才能向企業(yè)發(fā)布求職申請(qǐng),與企業(yè)之間建立聯(lián)系;企業(yè)也才能收到求職者的信息進(jìn)行后續(xù)的操作。個(gè)人用戶在成功登錄系統(tǒng)后,一般會(huì)按照下面的步驟進(jìn)行操作:
5.2.5 企業(yè)信息管理模塊
企業(yè)信息管理模塊與個(gè)人信息管理模塊功能類似,它管理的信息與企業(yè)相關(guān),與個(gè)人無(wú)關(guān)。例如:公司名稱、公司地點(diǎn)、職位需求等等。在該模塊中,企業(yè)用戶也可通過(guò)注冊(cè)、登錄、修改的功能,完善企業(yè)信息,進(jìn)行后續(xù)操作。
5.2.6 招聘管理模塊
企業(yè)用戶通過(guò)該模塊可以實(shí)現(xiàn)以下幾個(gè)功能:
5.3系統(tǒng)總體設(shè)計(jì)
5.3.1 系統(tǒng)設(shè)計(jì)思想
網(wǎng)上招聘系統(tǒng)的整體設(shè)計(jì)思想主要表現(xiàn)在以下幾個(gè)方面:
5.3.2 系統(tǒng)體系架構(gòu)
本系統(tǒng)采用三層架構(gòu)對(duì)其整體進(jìn)行劃分,這樣做的好處是:一方面,可以使整個(gè)系統(tǒng)結(jié)構(gòu)清晰,功能明確,從而使開(kāi)發(fā)人員對(duì)特定功能模塊的針對(duì)性得到提高,開(kāi)發(fā)效率大大增加。另一方面,也可以大大增強(qiáng)系統(tǒng)后期的可維護(hù)性,可擴(kuò)展性。該系統(tǒng)三層架構(gòu)的劃分如圖5-4所示。
圖5-4三層架構(gòu)
表現(xiàn)層:本系統(tǒng)的表現(xiàn)層是通過(guò)serlvet、jsp技術(shù)實(shí)現(xiàn)的,個(gè)人用戶和企業(yè)用戶通過(guò)使用表現(xiàn)層,將請(qǐng)求發(fā)送到不同的serlvet,servlet接受到不同的請(qǐng)求調(diào)用不同的業(yè)務(wù)邏輯功能,將獲取到的數(shù)據(jù)交給jsp呈現(xiàn)到用戶的面前。
業(yè)務(wù)邏輯層:在本系統(tǒng)中,業(yè)務(wù)邏輯層為service層,其功能就是使用數(shù)據(jù)層得到的數(shù)據(jù),實(shí)現(xiàn)功能模塊圖中所有的業(yè)務(wù)邏輯。
數(shù)據(jù)持久層:在本系統(tǒng)中,數(shù)據(jù)持久層為dao層。dao層通過(guò)MyBatis技術(shù)與數(shù)據(jù)庫(kù)進(jìn)行交互,實(shí)現(xiàn)對(duì)個(gè)人信息、企業(yè)信息-招聘信息的增、刪、改、查操作。
這三層之間是從上到下、層層依賴的關(guān)系。表現(xiàn)層要依賴于業(yè)務(wù)邏輯層進(jìn)行頁(yè)面的跳轉(zhuǎn),業(yè)務(wù)邏輯層又要依賴于數(shù)據(jù)持久層得到的數(shù)據(jù)對(duì)業(yè)務(wù)邏輯進(jìn)行判斷。
5.4?數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì)
數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì)是在需求分析階段得到的E-R圖為基礎(chǔ)進(jìn)行的。這一階段的主要任務(wù)就是把數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì)階段設(shè)計(jì)好的基本E-R圖恰當(dāng)?shù)霓D(zhuǎn)換為與選用數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)所支持的數(shù)據(jù)模型相符合的邏輯結(jié)構(gòu)。
5.4.1 關(guān)系型數(shù)據(jù)模型
通過(guò)E-R圖轉(zhuǎn)換后的關(guān)系數(shù)據(jù)模型如下所示。
個(gè)人表(ID,賬號(hào),密碼,姓名,生日,性別,學(xué)校,專業(yè),個(gè)人評(píng)價(jià),薪資要求,聯(lián)系方式,電子郵箱,發(fā)布時(shí)間)
企業(yè)表(ID,賬號(hào),密碼,公司名稱,公司地址,職位需求,聯(lián)系方式,公司簡(jiǎn)介,薪資待遇,電子郵箱,發(fā)布時(shí)間)
雇傭表(ID,個(gè)人ID,企業(yè)ID,是否同意錄用)
其中,雇傭表中個(gè)人ID對(duì)應(yīng)的是個(gè)人表的ID字段;企業(yè)ID對(duì)應(yīng)的是企業(yè)表中的ID字段。
5.4.2 數(shù)據(jù)表設(shè)計(jì)
個(gè)人數(shù)據(jù)表設(shè)計(jì)如表5-1所示。
表5-1?個(gè)人表
| 字段名 | 數(shù)據(jù)類型 | 長(zhǎng)度 | 約束 | 描述 |
| ID | NUMBER | 主鍵 | 個(gè)人ID | |
| USERNAME | VARCHAR2 | 20 | 不可為空 | 賬號(hào) |
| PASSWORD | VARCHAR2 | 20 | 不可為空 | 密碼 |
| NAME | VARCHAR2 | 20 | 不可為空 | 真實(shí)姓名 |
| SEX | VARCHAR2 | 4 | 不可為空 | 性別 |
| BIRTHDAY | VARCHAR2 | 20 | 不可為空 | 生日 |
| SCHOOL | VARCHAR2 | 20 | 不可為空 | 學(xué)校 |
| PHONE | VARCHAR2 | 20 | 不可為空 | 聯(lián)系方式 |
| | VARCHAR2 | 20 | 電子郵箱 | |
| TRADE | VARCHAR2 | 20 | 不可為空 | 專業(yè) |
| SALARY | VARCHAR2 | 20 | 不可為空 | 薪資要求 |
| TIP | VARCHAR2 | 200 | 個(gè)人評(píng)價(jià) | |
| PUBTIME | DATE | 發(fā)布時(shí)間 |
個(gè)人表用來(lái)存儲(chǔ)個(gè)人用戶的信息。其中,ID字段為該表的主鍵,是每個(gè)人身份的唯一標(biāo)示。pubtime字段存儲(chǔ)著個(gè)人用戶簡(jiǎn)歷發(fā)布的時(shí)間。其余字段則存儲(chǔ)著個(gè)人用戶的基本信息。
企業(yè)數(shù)據(jù)表設(shè)計(jì)如表5-2所示。
表5-2?企業(yè)表
| 字段名 | 數(shù)據(jù)類型 | 長(zhǎng)度 | 約束 | 描述 |
| ID | NUMBER | 主鍵 | 企業(yè)ID | |
| USERNAME | VARCHAR2 | 20 | 不可為空 | 賬號(hào) |
| PASSWORD | VARCHAR2 | 20 | 不可為空 | 密碼 |
| NAME | VARCHAR2 | 200 | 不可為空 | 公司名稱 |
| LOCATION | VARCHAR2 | 200 | 不可為空 | 公司地址 |
| PHONE | VARCHAR2 | 20 | 不可為空 | 聯(lián)系方式 |
| | VARCHAR2 | 20 | 電子郵箱 | |
| TRADE | VARCHAR2 | 20 | 不可為空 | 職位需求 |
| TIP | VARCHAR2 | 500 | 公司簡(jiǎn)介 | |
| SALARY | VARCHAR2 | 20 | 不可為空 | 薪資待遇 |
| PUBTIME | DATE | 發(fā)布時(shí)間 |
企業(yè)表用來(lái)存儲(chǔ)企業(yè)用戶的信息。其中,ID字段為該表的主鍵,是每個(gè)企業(yè)身份的唯一標(biāo)示。pubtime字段存儲(chǔ)著企業(yè)用戶招聘信息發(fā)布的時(shí)間。其余字段則存儲(chǔ)著企業(yè)的基本信息。
雇傭表設(shè)計(jì)如表5-3所示。
表5-3?雇傭表
| 字段名 | 數(shù)據(jù)類型 | 約束 | 描述 |
| ID | NUMBER | 主鍵 | 雇傭關(guān)系ID |
| P_ID | NUMBER | 外鍵 | 個(gè)人ID |
| C_ID | NUMBER | 外鍵 | 企業(yè)ID |
| ISAGREED | NUMBER | 不可為空 | 是否同意錄用 |
雇傭表用來(lái)記錄個(gè)人用戶與企業(yè)用戶的發(fā)生過(guò)的招聘行為。其中,ID字段為該表的主鍵,標(biāo)識(shí)著任何記錄都是獨(dú)立的、唯一的。p_id和c_id字段記錄著這一行為發(fā)生的對(duì)象是哪位求職者和哪家公司。isagreed字段記錄著招聘是否成功。該字段有三個(gè)選項(xiàng):0、1和-1。0表明這一求職申請(qǐng)正在等待企業(yè)的審核,1表明該申請(qǐng)已經(jīng)通過(guò),-1表明該申請(qǐng)已被拒絕。
6??系統(tǒng)實(shí)現(xiàn)
6.1?登錄模塊
登錄模塊的作用是根據(jù)用戶輸入的登錄信息,判斷正確與否,并根據(jù)傳給后臺(tái)的值,判斷是企業(yè)還是個(gè)人登錄,從而跳轉(zhuǎn)到相應(yīng)的主界面。整個(gè)系統(tǒng)的功能都是在用戶成功登錄的條件下進(jìn)行的,所以這個(gè)模塊尤為重要。
用戶按照用戶界面提示的信息,輸入自己的賬號(hào)和密碼,并勾選用戶類型。用戶點(diǎn)擊提交后,系統(tǒng)會(huì)先判斷用戶勾選的類型,接著再根據(jù)用戶名和密碼進(jìn)行檢索,如果在該類型的用戶表中存在這樣的用戶信息,系統(tǒng)會(huì)跳轉(zhuǎn)到相應(yīng)的主界面。否則,則重新跳轉(zhuǎn)到登錄界面,繼續(xù)登錄。
用戶在登錄成功后,后臺(tái)還會(huì)添加一個(gè)session范圍的屬性,名為person(company)。這一舉措可以保證每個(gè)用戶對(duì)數(shù)據(jù)的操作只是針對(duì)于其個(gè)人的,而不影響別人的信息。
登錄模塊的活動(dòng)圖如圖6-1所示。
??????????????
圖6-1?登錄模塊活動(dòng)圖
登錄模塊的關(guān)鍵代碼如下所示:
1.PersonMapper配置文件:
<select id="findPersonByNameAndPassword"??resultType="Person">
select * from person where username=#{0} and password=#{1}
</select>
2.Service層部分實(shí)現(xiàn)代碼:
//調(diào)用DAO層的findPersonByNameAndPassword()方法判讀登錄信息是否正確,從而決定是否允許登錄
public Person login(String username, String password) {
SqlSession session = MyBatisSqlSessionFactory.getSqlSessionFactory();
IPersonDao personDao = session.getMapper(IPersonDao.class);
Person p = personDao.findPersonByNameAndPassword(username, password);
if(p!=null){
return?p;
}else{
return?null;
}
}
3.Web層部分實(shí)現(xiàn)代碼:
String username = request.getParameter("username");
String password = request.getParameter("password");
String type = request.getParameter("type");
HttpSession session = request.getSession();
//從前臺(tái)獲取type參數(shù),判斷是個(gè)人登錄還是企業(yè)登錄
if("個(gè)人".equals(type)){
//調(diào)用service層的login()方法進(jìn)行登錄
Person person = new?IPersonServiceImp().login(username, password);
//登錄失敗跳轉(zhuǎn)到登陸界面進(jìn)行登錄
if(person == null){
response.sendRedirect("login.jsp");
//登錄成功跳轉(zhuǎn)到主界面
}else?{
session.setAttribute("person",person);
response.sendRedirect("index.jsp");
}
}
登錄界面如圖6-2所示。
圖6-2?登錄界面
6.2?注冊(cè)模塊
用戶可以通過(guò)注冊(cè)界面填寫(xiě)自己的信息。但是要遵循一定的規(guī)則。在用戶填寫(xiě)注冊(cè)信息的同時(shí),系統(tǒng)前臺(tái)會(huì)檢查用戶輸入信息的合法性,比如必填信息是否填全,信息長(zhǎng)度是否在規(guī)定范圍內(nèi)等。前臺(tái)檢查完畢后,后臺(tái)會(huì)根據(jù)用戶輸入的用戶名在數(shù)據(jù)庫(kù)中檢索,如果該用戶名已存在,便讓用戶重新輸入新的用戶名;如果不存在,則注冊(cè)成功,跳轉(zhuǎn)到登陸界面。
注冊(cè)模塊的關(guān)鍵代碼如下所示:
1.PersonMapper配置文件:
<select?id="findPersonByName"?parameterType="string"?resultType="Person">
select * from person where username=#{username}
</select>
2.Service層部分實(shí)現(xiàn)代碼:
//調(diào)用DAO層的findPersonByName()方法判斷用戶名是否存在;如不存在,則繼續(xù)調(diào)用savePerson()進(jìn)行注冊(cè)
public boolean register(Person person) {
SqlSession session = MyBatisSqlSessionFactory.getSqlSessionFactory();
IPersonDao personDao = session.getMapper(IPersonDao.class);
Person p = personDao.findPersonByName(person.getUsername());
if(p==null){
personDao.savePerson(person);
session.commit();
return?true;
}else{
return?false;
}
}
3.Web層部分實(shí)現(xiàn)代碼:
boolean?bool = false;
PrintWriter out = response.getWriter();
//如果性別選項(xiàng)不為空,則判斷是個(gè)人注冊(cè)
if(sex!=null){
String birthday = request.getParameter("birthday");
String school = request.getParameter("school");
//將前臺(tái)獲取到的參數(shù)傳入到person對(duì)象
Person person = new?Person(username, password, name, sex, birthday, phone, email, school, trade, salary, tip);
IPersonServiceImp iPersonServiceImp = new?IPersonServiceImp();
//調(diào)用service層的register()方法進(jìn)行注冊(cè)
bool = iPersonServiceImp.register(person);
if(bool == false){
????out.write("該用戶名已存在!"); ?????
}else{
if(isAuto!=null){
person.setPubtime(new?Date());
iPersonServiceImp.publish(person);
}
}
}
注冊(cè)模塊的活動(dòng)圖如圖6-3所示。
圖6-3?注冊(cè)模塊活動(dòng)圖
個(gè)人信息注冊(cè)界面如圖6-4所示。
圖6-4?個(gè)人信息注冊(cè)界面
6.3 信息修改模塊
如果用戶對(duì)自己現(xiàn)在的信息不滿意,則可以修改信息。想要成功修改信息,也需要滿足幾個(gè)條件。用戶名必須通過(guò)前臺(tái)驗(yàn)證,比如:不能為空、修改后的用戶名不得與數(shù)據(jù)表的用戶名重復(fù)等等。個(gè)別信息也不允許出現(xiàn)為空的現(xiàn)象。
信息修改模塊的關(guān)鍵代碼如圖6-5所示。
圖6-5?信息修改關(guān)鍵代碼
如圖6-6是個(gè)人信息修改的界面。
圖6-6?個(gè)人信息修改界面
6.4 查詢模塊
用戶成功登錄系統(tǒng)后,自動(dòng)跳轉(zhuǎn)到主頁(yè)。主頁(yè)羅列出所有已經(jīng)發(fā)布的簡(jiǎn)歷信息(招聘信息)。個(gè)人用戶可以在主界面瀏覽到企業(yè)已經(jīng)發(fā)布的招聘信息并進(jìn)行應(yīng)聘,也可以根據(jù)相應(yīng)的條件進(jìn)行檢索出自己心儀的企業(yè)應(yīng)聘。
企業(yè)用戶則可以瀏覽到求職者發(fā)布的應(yīng)聘信息。
羅列出所有信息的關(guān)鍵代碼如圖6-7所示:
圖6-7?信息羅列關(guān)鍵代碼
個(gè)人用戶主界面如圖6-8所示。
圖6-8個(gè)人用戶主界面
企業(yè)用戶主界面如圖6-9所示。
圖6-9企業(yè)用戶主界面
6.5?簡(jiǎn)歷管理模塊
個(gè)人用戶可以選擇發(fā)布自己的簡(jiǎn)歷,發(fā)布成功后,則可以被其他企業(yè)看到自己的求職信息。如果不想其他企業(yè)看到自己的求職信息,也可以選擇撤銷簡(jiǎn)歷,但前提必須是自己的簡(jiǎn)歷已經(jīng)發(fā)布。如果需要導(dǎo)出自己的簡(jiǎn)歷,則可以利用系統(tǒng)提供的模板進(jìn)行下載。
簡(jiǎn)歷下載界面如圖6-10所示。
圖6-10簡(jiǎn)歷下載界面
6.6?應(yīng)聘者管理模塊
企業(yè)用戶可以實(shí)時(shí)地看到有哪些申請(qǐng)者申請(qǐng)了職位,可以瀏覽到他們的詳細(xì)信息,從而決定是否錄用他們。在這之后,相應(yīng)的應(yīng)聘者也會(huì)得到是否被錄用的信息。
企業(yè)應(yīng)聘者名單如圖6-11所示。
圖6-11企業(yè)應(yīng)聘者名單
個(gè)人通知的界面如圖6-12所示。
圖6-12 個(gè)人通知界面
6.7?安全退出
當(dāng)用戶操作完畢,需要退出系統(tǒng)時(shí),用戶可以點(diǎn)擊頁(yè)面右上角的圖形按鈕,安全退出系統(tǒng)。用戶點(diǎn)擊完這個(gè)按鈕后,會(huì)彈出是否確定退出的選項(xiàng)。如果點(diǎn)擊確定,系統(tǒng)后臺(tái)會(huì)刪除名為person(company)的session屬性,以防別人登錄自己的賬戶,保護(hù)用戶的信息安全。退出界面如圖6-13所示。
圖6-13 退出界面
7??系統(tǒng)測(cè)試
由于軟件自身是看不見(jiàn)、摸不著的邏輯產(chǎn)品,所以在開(kāi)發(fā)過(guò)程中難免會(huì)出現(xiàn)一些難以預(yù)料的的錯(cuò)誤。在系統(tǒng)開(kāi)發(fā)的一系列過(guò)程中,為了保證系統(tǒng)運(yùn)行的正確性和可靠性,需要對(duì)其進(jìn)行測(cè)試,目的就在于發(fā)現(xiàn)這些潛在的錯(cuò)誤,從而對(duì)其進(jìn)行調(diào)試改正錯(cuò)誤。
7.1?測(cè)試方法
系統(tǒng)測(cè)試的方法基本上可以分為靜態(tài)測(cè)試和動(dòng)態(tài)測(cè)試兩種。
靜態(tài)測(cè)試就是指只對(duì)程序源碼進(jìn)行分析的測(cè)試方法。這種測(cè)試方法并不要求程序在計(jì)算機(jī)上運(yùn)行,而是采取人工檢測(cè)和計(jì)算機(jī)輔助檢測(cè)等手段進(jìn)行測(cè)試。這種方法的缺點(diǎn)便是難以直觀的找出錯(cuò)誤,且工作量較大,效率較低。
動(dòng)態(tài)測(cè)試則相反,它要求程序在計(jì)算機(jī)上運(yùn)行,在運(yùn)行的結(jié)果中發(fā)現(xiàn)錯(cuò)誤。這種測(cè)試方法可以直觀的找出錯(cuò)誤,因此大多數(shù)測(cè)試都采用動(dòng)態(tài)測(cè)試。動(dòng)態(tài)測(cè)試又可以細(xì)分為白盒測(cè)試和黑盒測(cè)試兩種。
本系統(tǒng)主要采用的是黑盒測(cè)試中的等價(jià)類劃分法。
7.2測(cè)試環(huán)境
本系統(tǒng)在保證其核心功能完整的前提下,對(duì)其在服務(wù)器上的部署進(jìn)行了一些簡(jiǎn)化操作。具體測(cè)試環(huán)境如下:
電腦型號(hào):惠普242 G1?64位筆記本電腦
操作系統(tǒng):Windows10專業(yè)版
數(shù)據(jù)庫(kù)版本:Oracle10g XE
JDK版本:JDK1.8
服務(wù)器版本:apache-tomcat-8.0.24-windows-x64
瀏覽器版本:Mozilla?FireFox 53.0.2
7.3測(cè)試結(jié)果
在本系統(tǒng)中,前臺(tái)使用了Jquery技術(shù)來(lái)對(duì)用戶輸入數(shù)據(jù)的合法性進(jìn)行判斷。比如:賬號(hào)密碼的長(zhǎng)度限制、個(gè)別選項(xiàng)輸入不能為空等等。以下是一些等價(jià)類劃分和測(cè)試結(jié)果。用戶注冊(cè)信息測(cè)試的部分等價(jià)類劃分如表7-1所示。
表7-1 “個(gè)人用戶注冊(cè)”輸入條件的等價(jià)類表
| 輸入條件 | 有效等價(jià)類 | 無(wú)效等價(jià)類 |
| 賬號(hào) |
|
|
| 密碼 |
|
|
測(cè)試數(shù)據(jù)如表7-2所示。
表7-2 “個(gè)人用戶注冊(cè)”測(cè)試數(shù)據(jù)
| 測(cè)試數(shù)據(jù) | 預(yù)期結(jié)果 | 等價(jià)類覆蓋 | |
| 賬號(hào) | 密碼 | ||
| wangjiawei | 123456 | 注冊(cè)成功 |
|
| Tom | 99163 | 注冊(cè)失敗 |
|
| Sam3152896 | \ | 注冊(cè)失敗 |
|
測(cè)試結(jié)果如圖7-1所示。
圖7-1 測(cè)試結(jié)果
本系統(tǒng)除了需要對(duì)用戶輸入數(shù)據(jù)的合法性進(jìn)行測(cè)試外,還需要對(duì)界面進(jìn)行測(cè)試,界面測(cè)試是許多B/S系統(tǒng)開(kāi)發(fā)中的重要一環(huán)。界面往往是用戶對(duì)系統(tǒng)的第一印象,用戶覺(jué)得界面越舒服、越美觀,使用下去的可能性也就越大。可見(jiàn),界面測(cè)試的重要性不言而喻。
界面測(cè)試主要考察系統(tǒng)界面布局是否合理、文字圖片是否規(guī)范、操作起來(lái)是否符合用戶的習(xí)慣、部分功能是否對(duì)用戶具有引導(dǎo)性等等。界面測(cè)試的結(jié)果如表7-3所示。
表7-3 界面測(cè)試
| 指標(biāo) | 測(cè)試項(xiàng) | 評(píng)價(jià) |
| 正確性 | 文字描述正確與否? | 全部正確 |
| 超鏈接跳轉(zhuǎn)正確與否? | 正確 | |
| 一致性 | 整個(gè)頁(yè)面風(fēng)格一致? | 所有頁(yè)面元素布局、顏色搭配都一致 |
| 布局 | 界面布局合理? | 界面以左右結(jié)構(gòu)為主,左邊為目錄,右邊為內(nèi)容顯示,布局合理 |
| 顏色搭配舒適? | 整個(gè)頁(yè)面以淺藍(lán)色為基調(diào),顏色柔和 | |
| 模塊尺寸比例合理? | 尺寸合理,易于操作 | |
| 交互性 | 執(zhí)行部分操作有提示? | 用戶注冊(cè)、用戶退出時(shí)有相應(yīng)的提示 |
7.4系統(tǒng)評(píng)價(jià)
總體來(lái)說(shuō),該系統(tǒng)已經(jīng)達(dá)到了預(yù)期的目標(biāo)。在設(shè)計(jì)方面,邏輯清晰;在編碼方面,撰寫(xiě)規(guī)范,分層合理;在功能方面,并未檢測(cè)出較大的錯(cuò)誤,對(duì)于一些小的缺陷也已改進(jìn)。整個(gè)系統(tǒng)運(yùn)行后,表現(xiàn)良好,具有穩(wěn)定性和可靠性。
點(diǎn)贊+收藏+關(guān)注 ?→ ?私信領(lǐng)取本源代碼、數(shù)據(jù)庫(kù)
總結(jié)
以上是生活随笔為你收集整理的MVC 网上招聘系统的设计与实现java jsp 程序设计 课程设计 毕业设计-附源码02135的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。