Java数据库课程设计-招聘人才管理系统
Java數(shù)據(jù)庫課程設(shè)計(jì)-招聘人才管理系統(tǒng)
系統(tǒng)展示
登錄和注冊
公司單位的主菜單
發(fā)布招聘信息功能
招聘錄用
職員主界面
投遞簡歷
系統(tǒng)開發(fā)
一、設(shè)計(jì)要求
人才市場管理系統(tǒng)實(shí)現(xiàn)對人才市場業(yè)務(wù)的規(guī)范化管理,系統(tǒng)主要管理如下信息,公司用人單位:編號、名稱、聯(lián)系人、電話、招聘人數(shù)、學(xué)歷要求、職稱要求、薪資。求職人員:身份證號碼、姓名、地址、電話、學(xué)歷、職稱。系統(tǒng)需完成的功能,每個招聘單位可以招聘多名求職人員,每個求職人員只能與一家單位簽約;每位求職人員可以給多個單位投遞簡歷,但只能被一家公司錄用。系統(tǒng)也應(yīng)能登記招聘單位和求職人員信息,記錄求職人員投遞簡歷情況,登記求職人員簽約情況,并能夠進(jìn)行各種需要的查詢,統(tǒng)計(jì)功能。
此系統(tǒng)需要通過手機(jī)號進(jìn)行注冊登錄,若是職員注冊登錄的,需要完善個人信息后,才能投遞簡歷。公司用人單位登錄后,可以根據(jù)實(shí)際情況,發(fā)布招聘信息,招聘信息上的所有信息都不能為空,而聯(lián)系人的手機(jī)號必須保證正確。修改招聘信息也同樣不能有空白的信息。公司用人單位可以查看系統(tǒng)上的所有的招聘信息,也可以通過關(guān)鍵字查找需要的招聘信息。公司用人單位可以查看職員投遞簡歷的情況,并且統(tǒng)計(jì)好發(fā)布的每條不同的招聘信息的投遞人數(shù),查看某一條招聘信息的投遞職員的詳細(xì)信息,并進(jìn)行錄用。公司用人單位也可以查看招聘錄用的情況,并且統(tǒng)計(jì)好發(fā)布的每條不同的招聘信息的錄用人數(shù),查看某一條招聘信息的錄用職員的詳細(xì)信息,也可以進(jìn)去刪除錄用的職員。職員個人登錄成功后,如果沒有完善好個人信息,需完善個人信息,才能投遞簡歷。求職人員可以查看系統(tǒng)上所有的招聘信息,也可以能過關(guān)鍵字查找需要的招聘信息,通過選擇合適的招聘信息,進(jìn)行投遞。如果該信息已投遞過了,就不能重復(fù)投遞,若重復(fù)投遞,會出現(xiàn)提示信息。求職人員可以查看投遞簡歷的情況,也可以刪除投遞簡歷的信息。求職人員也可以查看被錄用的信息,若未被錄用,則會彈出提示。
二、功能分析
根據(jù)系統(tǒng)主要業(yè)務(wù),可以分析得到公司用人單位子系統(tǒng)和職員個人子系統(tǒng)。
(一)公司用人單位子系統(tǒng)主要的數(shù)據(jù)處理過程分為對個人帳號信息的處理、對發(fā)布招聘信息的處理、對招聘錄用職員信息的處理,包括查看個人帳號信息,修改個人帳號信息,修改個人密碼,發(fā)布招聘信息,刪除招聘信息,修改招聘信息,查看招聘信息,查看投遞情況,錄用投遞職員,查看錄用情況,刪除錄用職員。具體處理如下:
查看個人帳號信息:根據(jù)登錄的帳號,查找數(shù)據(jù)庫里面的信息,將查找成功的帳號信息輸出到界面上。
修改個人帳號信息:根據(jù)登錄的帳號,查找出帳號信息,直接進(jìn)行修改,修改完成后,傳回?cái)?shù)據(jù)庫操作進(jìn)行保存。
修改個人密碼:首先輸入舊密碼,接著輸入修改后的新密碼,最后輸入再次確認(rèn)的新密碼,若舊密碼匹配成功,且前后兩次輸入的新密碼也相同,則修改成功,傳回?cái)?shù)據(jù)庫操作進(jìn)行保存。
發(fā)布招聘信息:根據(jù)實(shí)際情況,發(fā)布所需的招聘信息,每一個信息都不能為空,且聯(lián)系人的手機(jī)號必須正確輸入。信息輸入完成后,提交發(fā)布,將信息傳回?cái)?shù)據(jù)庫操作進(jìn)行添加。
刪除招聘信息:根據(jù)實(shí)際情況,選中要刪除的招聘信息,進(jìn)行刪除,刪除成功后,將信息傳回?cái)?shù)據(jù)庫操作進(jìn)行永久性刪除。
修改招聘信息:根據(jù)實(shí)際情況,選中要刪除的招聘信息,將該信息輸出到界面上,對舊信息進(jìn)行修改,同樣修改后的招聘信息,不能為空,提交修改后,將信息傳回?cái)?shù)據(jù)庫操作進(jìn)行保存。
查看招聘信息:根據(jù)帳號去匹配發(fā)布過的招聘信息,將招聘信息輸出到界面上。
查看投遞情況:根據(jù)發(fā)布的招聘信息編號來統(tǒng)計(jì)一共有多少求職人員,進(jìn)行投遞,將統(tǒng)計(jì)好的招聘信息輸出到界面上,并且可以查看詳細(xì)的職員信息。
錄用投遞職員:根據(jù)實(shí)際情況,查看特定的招聘信息的詳細(xì)投遞情況,選擇合適的職員進(jìn)行錄用,且同一個職員只能錄用一次,對于已被其它公司錄用的職員,不可以再次錄用。錄用成功后,需要將數(shù)據(jù)傳回到數(shù)據(jù)庫操作進(jìn)行保存。
查看錄用情況:根據(jù)錄用的招聘信息的編號來統(tǒng)計(jì)一共錄用了多少職員,將統(tǒng)計(jì)好的招聘信息輸出到界面上,并且可以查看詳細(xì)的職員信息。
刪除錄用職員:根據(jù)實(shí)際情況,查看特實(shí)的招聘信息的詳細(xì)錄用情況,選擇要刪除的職員信息進(jìn)行刪除。刪除成功后,需要將數(shù)據(jù)傳回到數(shù)據(jù)庫操作進(jìn)行永久性刪除。
(二)職員個人子系統(tǒng)主要的數(shù)據(jù)處理過程分為對個人信息的處理、對投遞簡歷信息的處理,包括查看個人信息,修改個人信息,修改個人密碼,投遞簡歷,查看投遞簡歷,刪除投遞簡歷,查看錄用信息。具體處理如下:
查看個人信息:根據(jù)登錄的帳號,查找數(shù)據(jù)庫里面的信息,將查找成功的個人信息輸出到界面上。
修改個人信息:根據(jù)登錄的帳號,查找出個人信息,直接進(jìn)行修改,修改完成后,傳回?cái)?shù)據(jù)庫操作進(jìn)行保存。
修改個人密碼:首先輸入舊密碼,接著輸入修改后的新密碼,最后輸入再次確認(rèn)的新密碼,若舊密碼匹配成功,且前后兩次輸入的新密碼也相同,則修改成功,傳回?cái)?shù)據(jù)庫操作進(jìn)行保存。
投遞簡歷:根據(jù)實(shí)際情況,選擇想要投遞的招聘信息,進(jìn)行投遞,同一條招聘信息不能重復(fù)投遞。投遞成功后,需要將數(shù)據(jù)傳回到數(shù)據(jù)庫操作進(jìn)行保存。
查看投遞簡歷:根據(jù)職員投遞的招聘信息,對數(shù)據(jù)庫進(jìn)行查找,將職員投遞過的招聘信息全部輸出到界面上。
刪除投遞簡歷:根據(jù)實(shí)際情況,輸出職員投遞的全部招聘信息,選擇需要刪除的招聘信息進(jìn)行刪除,刪除成功后,需要將數(shù)據(jù)傳回到數(shù)據(jù)庫操作進(jìn)行永久性刪除。
查看錄用信息:根據(jù)實(shí)際情況,若職員投遞的簡歷,被公司用人單位錄用后,將被錄用的招聘信息輸出到界面上。若沒有被錄用,則輸出提示。
三、系統(tǒng)E-R圖分析
賬號實(shí)體屬性圖
公司用人單位實(shí)體屬性圖
招聘信息實(shí)體屬性圖
公司子系統(tǒng)實(shí)體聯(lián)系圖
職員實(shí)體屬性圖
職員個人子系統(tǒng)實(shí)體聯(lián)系圖
人才市場管理系統(tǒng)總體E-R圖
關(guān)系數(shù)據(jù)模式
帳號(編號,姓名,手機(jī)號,密碼,權(quán)限)
此為帳號實(shí)體對應(yīng)的關(guān)系模式。該關(guān)系模式已包含了聯(lián)系“公司”和“職員”所對應(yīng)的關(guān)系模式。權(quán)限是關(guān)系的侯選碼。
公司(編號,姓名,手機(jī)號,密碼)
此為公司實(shí)體對應(yīng)的關(guān)系模式。該關(guān)系模式已包含了聯(lián)系“招聘信息”所對應(yīng)的關(guān)系模式。手機(jī)號就是關(guān)系的外鍵。
職員(編號,手機(jī)號,密碼,姓名,身份證號,地址,電話,學(xué)歷,職稱)
此為職員實(shí)體對應(yīng)的關(guān)系模式。該關(guān)系模式已包含了聯(lián)系“招聘信息”所對應(yīng)的關(guān)系模式。編號就是關(guān)系的侯選碼。
招聘信息(編號,手機(jī)號,名稱,聯(lián)系人,電話,招聘人數(shù),學(xué)歷要求,職稱要求,薪資)
此為招聘信息實(shí)體對應(yīng)的關(guān)系模式。該關(guān)系模式已包含了聯(lián)系“公司”和“職員”所對應(yīng)的關(guān)系模式。編號就是關(guān)系侯選碼。
數(shù)據(jù)庫表的設(shè)計(jì)
賬號表
字段名 類型 特殊屬性
| 賬號編號 | Int | 主鍵自增 |
| 姓名 | Varchar(10) | Not null |
| 手機(jī)號 | Varchar(11) | 外鍵 |
| 密碼 | Varchar(16) | Not null |
| 權(quán)限 | Int | Not null |
招聘信息表
| 編號 | Int | 主鍵自增 |
| 手機(jī)號 | Varchar(11) | Not null |
| 姓名 | Varchar(20) | Not null |
| 聯(lián)系人 | Varchar(10) | Not null |
| 電話 | Varchar(11) | Not null |
| 招聘人數(shù) | Varchar(10) | Not null |
| 學(xué)歷 | Varchar(10) | Not null |
| 職稱要求 | Varchar(200) | Not null |
| 薪資 | Varchar(10) | Not null |
職員表
| 編號 | Int | 主鍵自增 |
| 手機(jī)號 | Varchar(11) | Not null |
| 身份證號 | Varchar(18) | |
| 姓名 | Varchar(20) | Not null |
| 地址 | Varchar(20) | |
| 電話 | Varchar(11) | |
| 學(xué)歷 | Varchar(20) | |
| 職稱 | Varchar(20) |
投遞簡歷表
| 編號 | Int | 主鍵自增 |
| 招聘信息編號 | Int | Not null |
| 職員編號 | Int | Not null |
錄用職員表
| 編號 | Int | 主鍵自增 |
| 招聘信息編號 | Int | Not null |
| 職員編號 | Int | Not null |
系統(tǒng)程序流程圖
四、業(yè)務(wù)代碼的編寫
開發(fā)工具:eclipse、數(shù)據(jù)庫mysql5.7
源代碼程序詳細(xì)設(shè)計(jì)
public static final String DRIVER = "com.mysql.jdbc.Driver"; public static final String URL = "jdbc:mysql://localhost:3306/jobs"; public static final String USERNAME = "root"; public static final String PASSWORD = "123456"; static {try {Class.forName(DRIVER);}catch(ClassNotFoundException e) {e.printStackTrace();} } ……… try {conn = (Connection) DriverManager.getConnection(URL,USERNAME,PASSWORD); }catch(SQLException e) {e.printStackTrace(); } ……… try {if(rs != null) rs.close();if(ps != null) ps.close();if(conn != null) conn.close(); }catch (Exception e) {e.printStackTrace(); } ………1、 該代碼是用于連接訪問MySQL數(shù)據(jù)庫的,用靜態(tài)代碼塊來編寫,每次運(yùn)行時,首先會加載此代碼。而且將此代碼封裝成為一個靜態(tài)類,每次連接釋放時,都可以通過類名來調(diào)用此方法。
public void setSearchText(String SearchText) {this.SearchTexts=SearchText;this.companyPageNo = 1;this.companyTotalCount = (int)companyDao.getCompanyTotal(SearchText);if(companyTotalCount%companyPageSize == 0) {companyTotalPage = companyTotalCount/companyPageSize;}else {companyTotalPage = companyTotalCount/companyPageSize+1;} } public CompanyPageModel(int companyPageSize) {this.companyPageNo = 1;this.companyPageSize = companyPageSize;this.companyTotalCount = (int)companyDao.getCompanyTotal("");if(companyTotalCount%companyPageSize == 0) {companyTotalPage = companyTotalCount/companyPageSize;}else {companyTotalPage = companyTotalCount/companyPageSize+1;} }2、 該代碼是用于關(guān)鍵字搜索和頁面的展示,根據(jù)不同情況統(tǒng)計(jì)頁數(shù)和展示搜索到的數(shù)據(jù)信息。初始化時,將關(guān)鍵字搜索內(nèi)容設(shè)置為空,統(tǒng)計(jì)全部的招聘信息的數(shù)據(jù)。并且設(shè)置首頁為第一頁。
if(companyPageModel.getSearchText()!=null && !companyPageModel.getSearchText().equals("")) { String sql = "select companyNumber,companyName,companyPerson,companyPhone,companyCount,companyLearn,companyRequest,companyMoney from companyTable where companyName like ? or companyRequest like ? limit ?,? ";ps = (PreparedStatement) conn.prepareStatement(sql);ps.setString(1, "%"+companyPageModel.getSearchText()+"%");ps.setInt(3, (companyPageModel.getCompanyPageNo()-1)*companyPageModel.getCompanyPageSize()); }else {String sql = "select companyNumber,companyName,companyPerson,companyPhone,companyCount,companyLearn,companyRequest,companyMoney from companyTable limit ?,? ";ps = (PreparedStatement) conn.prepareStatement(sql);ps.setInt(1, (companyPageModel.getCompanyPageNo()-1)*companyPageModel.getCompanyPageSize());ps.setInt(2, companyPageModel.getCompanyPageSize()); } rs = ps.executeQuery(); if(!rs.wasNull()) {companys =new ArrayList<Company>(); } while(rs.next()) {Company company = new Company();company.setCompanyNumber(rs.getInt("companyNumber"));company.setCompanyName(rs.getString("companyName"));company.setCompanyPerson(rs.getString("companyPerson")); ………company.setCompanyRequest(rs.getString("companyRequest"));company.setCompanyMoney(rs.getString("companyMoney"));companys.add(company); }3、該代碼是用于分情況查詢招聘信息,如果關(guān)鍵字的信息為空,則查詢?nèi)康恼衅感畔?#xff0c;否則按關(guān)鍵字的內(nèi)容查詢招聘信息,并且將查詢到的招聘信息添加到招聘信息集合類中。
五、系統(tǒng)功能使用說明
人才市場管理系統(tǒng)主界面上有登錄和注冊的功能(如圖7-1和圖7-2),可以選擇不同類別進(jìn)行登錄和注冊。登錄和注冊的帳號為手機(jī)號,且一個手機(jī)號只能注冊一個帳號。
圖7-1
圖7-2
公司單位主界面可以查看本系統(tǒng)上全部的招聘信息,而且可以通過關(guān)鍵字查詢所需要的招聘信息(如圖7-3)。左邊為公司單位的主菜單,可以根據(jù)需求使用不同的功能。
圖7-3
公司單位發(fā)布招聘信息功能(如圖7-4),必須根據(jù)需求填寫相應(yīng)的內(nèi)容,而且全部的內(nèi)容都不能為空,手機(jī)號也必須為11位數(shù),否則發(fā)布招聘信息失敗。提供重置全部輸入框的內(nèi)容。公司單位可以查看自己發(fā)布的全部招聘信息(如圖7-5),左邊為二級菜單欄,提供對已發(fā)布招聘信息的相關(guān)操作。刪除已發(fā)布的招聘信息,首先選中要刪除的招聘信息,點(diǎn)擊刪除招聘按鈕,會彈出提示是否要刪除選中的信息,確認(rèn)則可以刪除招聘信息(如圖7-6)。修改已發(fā)布的招聘信息,首先選中要修改的招聘信息,點(diǎn)擊修改招聘按鈕,會彈出一個界面,該界面會將舊信息輸出,則可以在舊信息上進(jìn)行修改,也可以重置全部的信息(如圖7-7)。
圖7-4
圖7-5
圖7-6
圖7-7
公司單位的招聘錄用功能,點(diǎn)擊查看全部招聘信息的投遞情況,選中某一條招聘信息,點(diǎn)擊查看詳情,則會進(jìn)入到投遞簡歷的全部職員的信息界面,選中某一職員,點(diǎn)擊錄用,則可以進(jìn)行錄用操作(如圖7-8)。若該職員已被錄取,則不能重復(fù)錄用,會彈出警告,請勿再次錄用(如圖7-9)。若該職員已被其它公司錄用,則不能重復(fù)錄用,會彈出警告,該職員已被其它公司錄用(如圖7-10)。
圖7-8
圖7-9
圖7-10
公司單位的查看錄用情況功能,點(diǎn)擊查看全部的招聘信息的錄用情況,選中某一條招聘信息,點(diǎn)擊查看詳情,則會進(jìn)入到錄用該招聘信息的全部職員的信息界面,選中某一職員,也可以進(jìn)行刪除錄用信息的功能,點(diǎn)擊刪除,會彈出提示,是否要刪除選中的信息(如圖7-11)。
圖7-11
職員主界面可以查看本系統(tǒng)上全部的招聘信息,而且可以通過關(guān)鍵字查詢所需要的招聘信息(如圖7-12)。左邊為職員的主菜單,可以根據(jù)需求使用不同的功能。
圖7-12
職員查看和修改個人信息的功能,點(diǎn)擊個人信息的按鈕,會彈出一個界面,該界面會將該職員的全部信息輸出。若該職員的個人信息未完善,則會彈出提醒,必須完善個人信息才能投遞簡歷。在該界面上也可以對個人信息進(jìn)行修改,對舊信息也提供了重置功能,對個人信息進(jìn)行重新設(shè)置(如圖7-13)。
圖7-13
職員投遞簡歷的功能,職員可以對系統(tǒng)上的任何一條招聘信息進(jìn)行投遞,也可以按關(guān)鍵字搜索需要的招聘信息進(jìn)行投遞,選中要投遞的招聘信息,再點(diǎn)擊投遞簡歷按鈕,則會彈出提示,是否要投遞選中的招聘信息,確實(shí)則完成了投遞簡歷(如圖7-14)。若該招聘信息已進(jìn)行過投遞,則會彈出警告,該招聘信息已投遞,請勿再次投遞(如圖7-15)。
圖7-14
圖7-15
職員查看投遞簡歷的功能,點(diǎn)擊查看投遞按鈕,會彈出一個界面,將全部投遞過的招聘信息輸出(如圖7-16)。在該界面上也可以進(jìn)行刪除已投遞過的簡歷信息,選中要刪除的招聘信息,點(diǎn)擊刪除,即可刪除掉已投遞過的簡歷(如圖7-17)。
圖7-16
圖7-17
職員查看招聘錄用功能,如果該職員投遞的簡歷已被錄取,則點(diǎn)擊查看錄用按鈕,會彈出一個界面,將錄用的招聘信息輸出(如圖7-18)。若該職員尚未被錄用,則會彈出提示,尚未被錄用,請耐心等待。
圖7-18
六、收獲、體會和建議
本次課程設(shè)計(jì)圍繞數(shù)據(jù)庫相關(guān)設(shè)計(jì)展開。在設(shè)計(jì)過程中,首先復(fù)習(xí)了數(shù)據(jù)庫設(shè)計(jì)流程和 相關(guān)內(nèi)容,通過構(gòu)建實(shí)體關(guān)系圖輔助完成關(guān)系表的設(shè)計(jì),并通過范式理論中進(jìn)一步優(yōu)化相關(guān) 數(shù)據(jù)。隨后了解了數(shù)據(jù)庫設(shè)計(jì)工具的使用,相關(guān)輔助設(shè)計(jì)工具的使用可以減少設(shè)計(jì)時的重復(fù)勞動,將更多精力關(guān)注在業(yè)務(wù)邏輯和設(shè)計(jì)上。在對數(shù)據(jù)庫進(jìn)行設(shè)計(jì)的過程中,結(jié)構(gòu)比較簡單,不能夠應(yīng)對是否能復(fù)雜的情況,只能對簡單信息進(jìn)行操作。另外,在安全性方面做得也不夠完善,主要原因在于設(shè)計(jì)的重點(diǎn)是功能的正常執(zhí)行,而不是在每一個細(xì)節(jié)做到完美。因此,這個數(shù)據(jù)庫系統(tǒng)需要我在以后的學(xué)習(xí)去完成每一個細(xì)節(jié)。
完整代碼下載!!!
資源下載路徑一
!!!
總結(jié)
以上是生活随笔為你收集整理的Java数据库课程设计-招聘人才管理系统的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: springcloud篇面试宝典
- 下一篇: 诺顿企业版安装找不到路径