MySQL數據庫管理與應用任務式教程(微課版)單元11 Java+MySQL 人力資源管理系統開發綜合實例_第1頁
MySQL數據庫管理與應用任務式教程(微課版)單元11 Java+MySQL 人力資源管理系統開發綜合實例_第2頁
MySQL數據庫管理與應用任務式教程(微課版)單元11 Java+MySQL 人力資源管理系統開發綜合實例_第3頁
MySQL數據庫管理與應用任務式教程(微課版)單元11 Java+MySQL 人力資源管理系統開發綜合實例_第4頁
MySQL數據庫管理與應用任務式教程(微課版)單元11 Java+MySQL 人力資源管理系統開發綜合實例_第5頁
已閱讀5頁,還剩34頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

單元11Java+MySQL人力資源管理系統開發綜合實例《MySQL數據庫管理與應用任務式教程(慕課版)》學習內容任務1數據類型任務4物理結構設計數據庫系統的組成任務6游標任務2概念結構設計任務3邏輯結構設計任務1需求分析任務5數據庫實施任務1需求分析數據庫設計是數據庫應用系統開發的重要環節。數據庫設計分為需求分析、概念設計、詳細設計及物理設計四階段。數據庫應用系統開發設計,先要作用戶需求分析。

需求分析主要分析客戶的業務和數據處理需求,通過需求分析對需要存儲的數據進行收集和整理,并建立完整的數據集。收集數據的方法有:找相關人員作開會調查、發用戶調查表、查閱歷史資料數據、跟班作業、實際觀摩工作業務流程、編制各種實用報表等。

任務1需求分析數據字典:是指對數據的數據項、數據結構、數據流、數據存儲、處理邏輯等進行定義和描述,其目的是對數據流圖中的各個元素作出詳細的說明,使用數據字典為簡單的建模項目。簡而言之,數據字典是描述數據的信息集合,是對系統中使用的所有數據元素的定義的集合。系統數據流圖:需求分析生成的結果有:數據字典、數據流圖、判定表和判定樹等。任務1需求分析系統功能結構圖任務2概念結構設計1.概念結構設計概念結構設計就是對信息世界進行建模,常用的概念模型是E-R模型。概念結構設計的任務是在需求分析階段產生的需求說明書的基礎上,按照特定的方法把它們抽象為一個不依賴于任何具體機器的數據模型,即概念模型。在需求分析的基礎上,得到實體、屬性及聯系的E-R圖。雇員實體及屬性表示如圖雇員編號姓名部門編號電話…任務2概念結構設計2.實體間的聯系1:1一對一1:m一對多m:n多對多任務3邏輯結構設計1.關系模型設計邏輯結構的設計是要求把概念結構設計的結果轉換成所選用的數據庫管理系統所支持的特定類型的邏輯模型,關系模型是最流行的邏輯模型,它用表來表示實體和實體間的聯系。根據概念結構設計分析結果,運用E-R圖到關系模式的轉換方法:一個實體型轉換為一個關系模式,實體型中的屬性轉換為關系模式的屬性,實體型的主碼轉換為關系模式的關鍵字,用下劃線加以標識,其中E-R圖中的聯系也要轉換為關系模式,轉換方法是:一對一的聯系可轉為單個關系模式,也可與任意一端的實體型轉換成的關系合并,一對多的聯系可轉換為單個關系模式,也可與多端的實體型轉換成的關系模式合并,多對多、三個及以上的聯系只能轉為單個關系模式。如雇員關系模式:雇員信息表(雇員編號,雇員名,雇員姓,郵箱,電話,入職日期,崗位編號,工資,獎金,所在部門)任務3邏輯結構設計2.對關系模式集合進行規范化處理范式是符合某一種級別的關系模式的集合,關系數據庫中的關系須滿足不同的范式,目前關系數據庫有6種范式。第一范式(1NF),第二范式(2NF),第三范式(3NF),BCNF(BC范式),第四范式(4NF),第五范式(5NF)。

第一范式指表的每一列是不可再分的數據項,同一列中不可有多個值,不能存在相同的兩行要求。任何一個關系數據庫中第一范式是對關系模式的基本要求,不滿足第一范式的數據庫不是關系數據庫。

第二范式是建立在第一范式的基礎上的,第二范式要求實體的屬性完全依賴于主屬性,即不能存在僅依賴主屬性的一部分,若存在那么這個屬性的主屬性的這一部分就要分解成一個新的實體。

第三范式的建立,要求滿足第三范式的數據庫表中不包含在其他表中已包含的非主鍵信息,即第三范式是屬性不依賴于其他非主屬性,也就是不存在傳遞依賴。任務3邏輯結構設計3.確定數據表和表中的列

根據上述分析結果得出人力資源管理的數據表結構,還需要為表中字段添加一些描述,如字段數據類型、約束等。雇員基本信息表,其它信息表略。

表11-1字段名雇員編號雇員名雇員姓郵箱電話入職日期崗位編號工資傭金比部門編號部門經理編號英文Employee_idFirst_nameLast_nameemailPhone_numberHire_dateJob_idsalaryCommision_pctDepartment——idManager_id數據類型整型變長字符變長字符變長字符變長字符日期變長字符整型整型整型整型是否空NYNNYNNYYNN主鍵否YNNNNNNNNNN任務4物理結構設計1.物理結構設計物理設計主要包括存儲記錄結構的設計、數據存放位置、存取方法、完整性及安全性和應用程序等的設計,當有前階段運用范式對關系模式的規范化處理后,降低了關系模式的冗余,消除了數據依賴不合理因素,使關系模式達到了一定程度的分離,接下來就是選用合適的數據庫管理系統(如MySQL)。任務5數據庫實施11.5.1創建數據庫和數據表創建的腳本createdatabasehr;usehr;CREATETABLE`hr`.`departments`(`department_id`int(4)NOTNULLCOMMENT'部門編號',`department_name`varchar(30)NOTNULLCOMMENT'部門名稱',`manager_id`int(6)NULLCOMMENT'經理編號',`location_id`int(4)NULL,PRIMARYKEY(`department_id`));任務5數據庫實施CREATETABLE`hr`.`employees`(`employee_id`int(6)NOTNULLCOMMENT'員工號',`first_name`varchar(20)NULLCOMMENT'名',`last_name`varchar(25)NOTNULLCOMMENT'姓',`email`varchar(25)NOTNULLCOMMENT'電子郵箱',`phone_number`char(20)NULLCOMMENT'手機號',`hire_date`dateNOTNULLCOMMENT'聘用日期',`job_id`varchar(10)NOTNULLCOMMENT'工作號',`salary`decimal(8,2)NULLCOMMENT'工資',`commision_pic`decimal(2,2)NULLCOMMENT'傭金比',`manager_id`int(6)NULLCOMMENT'經理編號',`department_id`int(4)NULLCOMMENT'部門編號',PRIMARYKEY(`employee_id`));任務5數據庫實施CREATETABLE`hr`.`jobs`(`job_id`varchar(10)NOTNULLCOMMENT'工作號',`job_title`varchar(35)NOTNULLCOMMENT'工作名',`min_salary`int(6)NULLCOMMENT'最低工資',`max_salary`int(6)NULLCOMMENT'最高工資',PRIMARYKEY(`job_id`));CREATETABLE`hr`.`job_history`(`employee_id`int(6)NOTNULLCOMMENT'員工號',`start_date`dateNOTNULLCOMMENT'入職時間',`end_date`dateNOTNULLCOMMENT'離職時間',`job_id`int(10)NOTNULLCOMMENT'工作號',`department_id`int(4)NULLCOMMENT'部門編號',PRIMARYKEY(`employee_id`));任務5數據庫實施CREATETABLE`hr`.`locations`(`location_id`int(4)NOTNULLCOMMENT'位置號',`street_address`varchar(40)NULLCOMMENT'街區地址',`postal_code`varchar(12)NULLCOMMENT'郵編',`city`varchar(30)NOTNULLCOMMENT'城市',`state_province`varchar(25)NULLCOMMENT'省市',`country_id`char(2)NULLCOMMENT'國家編號',PRIMARYKEY(`location_id`));

任務5數據庫實施CREATETABLE`hr`.`regions`(`region_id`int(2)NOTNULLCOMMENT'地區編號',`region_name`varchar(25)NULLCOMMENT'地區名',PRIMARYKEY(`region_id`));

CREATETABLE`hr`.`countries`(`country_id`char(2)NOTNULLCOMMENT'國家編號',`country_name`varchar(30)NOTNULLCOMMENT'國家名',`region_id`int(2)NOTNULLCOMMENT'地區編號',PRIMARYKEY(`country_id`));任務5數據庫實施參照附錄“人力資源數據庫(HR)的表數據”,添加樣本數據到數據表中。部分樣本數據添加如下。INSERTINTOemployees(employee_id,first_name,last_name,email,phone_number,hire_date,job_id,salary,department_id)VALUES(100,'Steven','King','SKING','515.123.4567','1987-06-17','AD_PRES',24000,90);INSERTINTO`employees`VALUES(101,'Neena','Kochhar','NKOCHHAR','515.123.4568','1989-09-21','AD_VP',17000.00,NULL,100,90);INSERTINTO`countries`VALUES('AR','Argentina',2);INSERTINTO`countries`VALUES('AU','Australia',3);INSERTINTO`countries`VALUES('BE','Belgium',1);INSERTINTO`departments`VALUES(10,'Administration',200,1700);INSERTINTO`departments`VALUES(20,'Marketing',201,1800);INSERTINTO`departments`VALUES(30,'Purchasing',114,1700);任務5數據庫實施11.5.2存儲過程創建運用存儲過程查詢員工信息,當輸入員工的編號時,顯示該員工的信息。這里運用帶參數的存儲過程,將員工編號作為一個輸入型參數。代碼如下。CREATEDEFINER=`root`@`localhost`PROCEDURE`pro_cx`(inbhint)begindeclarebhintdefault0;select*fromemployeeswhereemployee_id=@bh;end;測試雇員編號為100的雇員情況,調用如下。Callpro_cx(100);任務5數據庫實施11.5.3數據庫應用程序開發(1)啟動Eclipse(2)選擇菜單命令“File”|“New”|“JavaProject”,打開“NewJavaProject”新建一個工程的對話框,在該對話框projectname的文本框中輸入“MyProj”,得到名稱為MyProj的Java工程,如圖11-9;1.創建Java工程(3)創建Java應用程序一個Java應用程序可包含多個類,但有且僅有一個類包含main()方法,它是作為程序的入口,在此先建一個類,以測試對數據庫的通訊連接圖11-92.連接數據庫importjava.sql.*;publicclassHrMysqlJdbc{ publicstaticvoidmain(String[]args){ try{ Class.forName("com.mysql.cj.jdbc.Driver");//1.加載驅動

System.out.println("JDBC驅動程序加載成功"); } catch(Exceptione){ System.out.print("JDBC驅動程序加載失敗"); e.printStackTrace(); } try{

任務5數據庫實施 //2.獲取連接對象

Connectionconnect=DriverManager.getConnection( "jdbc:mysql://localhost:3306/HR?serverTimezone=UTC&useSSL=false","root","root"); System.out.println("成功連接數據庫");任務5數據庫實施 //3.創建createStatement對象

Statementstmt=connect.createStatement();//數據源注意IP地址和端口號,數據庫名字

try{ Class.forName(connectDB);//加載數據庫引擎,返回給定字符串名的類

}catch(ClassNotFoundExceptione){ //e.printStackTrace(); System.out.println("加載數據庫引擎失敗"); System.exit(0); } System.out.println("數據庫驅動成功");任務5數據庫實施任務5數據庫實施try{ Stringuser="root";//你自己創建的用戶名字和密碼!!

Stringpassword="root"; Connectioncon=DriverManager.getConnection(connectDB,user,password);//連接數據庫對象

System.out.println("連接數據庫成功"); Statementstmt=con.createStatement();//創建SQL命令對象

//創建表

System.out.println("查詢"); System.out.println("開始讀取數據"); ResultSetrs=stmt.executeQuery("SELECT*FROMemployees");//返回SQL語句查詢結果集(集合)任務5數據庫實施//循環輸出每一條記錄 System.out.println("雇員編號 \t雇員名\t雇員姓\t郵箱\t電話\t\t入職日期\t\t\t崗位編號\t\t工資\t獎金\t部門編號\t部門經理編號"); while(rs.next()){ //輸出每個字段 System.out.println("employee_id"+"\t"+rs.getString("first_name")+"\t"+rs.getString("last_name")+"\t"+rs.getString("email")+"\t"+rs.getString("phone_int")+"\t"+rs.getString("hire_smalldatetime")+"\t"+rs.getString("job_id")+"\t"+rs.getString("salary")+"\t"+rs.getString("commission_PCT")+"\t"+rs.getString("manager_id")+"\t"+rs.getString("department_id")+"\t");任務5數據庫實施 } System.out.println("讀取完畢"); //關閉連接

stmt.close();//關閉命令對象連接

con.close();//關閉數據庫連接

}catch(SQLExceptione){ e.printStackTrace(); //System.out.println("數據庫連接錯誤"); System.exit(0); } }3.運行程序右擊所建類名,選RunAs|JavaApplication命令,得到如下運行結果任務5數據庫實施1.JDBC概述JDBC全稱是Java數據庫連接(javadatabaseconnectivity),它是一套用于執行SQL語句的JAVAAPI,應用程序可通過這套JAVAAPI連接到關系數據庫,使用SQL語句完成對數據庫中數據的查詢、增加、修改和刪除等操作。任務5數據庫實施11.5.4JDBC數據訪問Java應用程序與數據庫的連接方式如圖11-11所示。不同數據庫(如MYSQL或ORACLE等)處理數據的方式不同,若直接使用數據庫廠商提供的訪問接口操作數據庫,應用程序的可移植性較差。如用戶在當前程序中使用的是MYSQL提供的接口操作數據庫,如果換用ORACLE數據庫,就要重新使用ORACLE數據庫提供的接口,編碼需要做較大的修改。如果使用JDBC就很方便移植,因為JDBC要求各數據庫廠商按統一的規范提供數據庫驅動程序,在程序中由JDBC和具體的數據庫驅動程序聯系,用戶不必直接與底層數據庫交互,這樣使得代碼的通用性增強。任務5數據庫實施JDBC具有如下功能。(1)與數據庫建立連接;(2)發送SQL語句;(3)處理結果。圖11-11Java應用程序與數據庫的連接方式任務5數據庫實施2.加載JDBC驅動程序

在連接數據庫之前,首先要加載想要連接的數據庫的驅動到JVM(Java虛擬機),這通過java.lang.Class類的靜態方法forName(StringclassName)實現。例如:try{ Class.forName(driverName); System.out.println("加載驅動成功!");}catch(Exceptione){ e.printStackTrace(); System.out.println("加載驅動失敗!");}成功加載后,會將Driver類的實例注冊到DriverManager類中。任務5數據庫實施3.提供JDBC連接的URL

JDBCURL提供了一種標識數據庫的方法,可以使相應的驅動程序能識別該數據庫并與之建立連接。實際上,驅動程序編程員將決定用什么JDBCURL來標識特定的驅動程序。用戶不必關心如何來形成JDBCURL,他們只須使用與所用的驅動程序一起提供的URL即可。JDBC的作用是提供某些約定,驅動程序編程員在構造他們的JDBCURL時應該遵循這些約定。任務5數據庫實施

4.創建數據庫的連接

要連接數據庫,需要向java.sql.DriverManager請求并獲得Connection對象,該對象代表一個數據庫的連接。

使用DriverManager的getConnectin(Stringurl,Stringusername,Stringpassword)方法傳入指定的欲連接的數據庫的路徑、數據庫的用戶名和密碼。例如:

try{

ConnectiondbConn=DriverManager.getConnection(dbURL,userName,userPwd); System.out.println("連接數據庫成功!");}catch(Exceptione){ e.printStackTrace(); System.out.print("SQLServer連接失敗!");}

任務5數據庫實施5.創建一個Statement對象

要執行SQL語句,必須獲得java.sql.Statement實例,Statement實例分為以下3種類型。

(1)執行靜態SQL語句。通常通過Statement實例實現。

(2)執行動態SQL語句。通常通過PreparedStatement實例實現。

(3)執行數據庫存儲過程。通常通過CallableStatement實例實現。

具體的實現方式如下。

Statementstmt=con.createStatement();PreparedStatementpstmt=con.prepareStatement(sql);CallableStatementcstmt=con.prepareCall(“{CALLdemoSp(?,?)}”);

任務5數據庫實施6.執行SQL語句

Statement接口提供了三種執行SQL語句的方法:executeQuery、executeUpdate和exec

溫馨提示

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

評論

0/150

提交評論