MySQL數(shù)據(jù)庫(kù)管理與應(yīng)用任務(wù)式教程(微課版)單元11 Java+MySQL 人力資源管理系統(tǒng)開發(fā)綜合實(shí)例_第1頁(yè)
MySQL數(shù)據(jù)庫(kù)管理與應(yīng)用任務(wù)式教程(微課版)單元11 Java+MySQL 人力資源管理系統(tǒng)開發(fā)綜合實(shí)例_第2頁(yè)
MySQL數(shù)據(jù)庫(kù)管理與應(yīng)用任務(wù)式教程(微課版)單元11 Java+MySQL 人力資源管理系統(tǒng)開發(fā)綜合實(shí)例_第3頁(yè)
MySQL數(shù)據(jù)庫(kù)管理與應(yīng)用任務(wù)式教程(微課版)單元11 Java+MySQL 人力資源管理系統(tǒng)開發(fā)綜合實(shí)例_第4頁(yè)
MySQL數(shù)據(jù)庫(kù)管理與應(yīng)用任務(wù)式教程(微課版)單元11 Java+MySQL 人力資源管理系統(tǒng)開發(fā)綜合實(shí)例_第5頁(yè)
已閱讀5頁(yè),還剩34頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

單元11Java+MySQL人力資源管理系統(tǒng)開發(fā)綜合實(shí)例《MySQL數(shù)據(jù)庫(kù)管理與應(yīng)用任務(wù)式教程(慕課版)》學(xué)習(xí)內(nèi)容任務(wù)1數(shù)據(jù)類型任務(wù)4物理結(jié)構(gòu)設(shè)計(jì)數(shù)據(jù)庫(kù)系統(tǒng)的組成任務(wù)6游標(biāo)任務(wù)2概念結(jié)構(gòu)設(shè)計(jì)任務(wù)3邏輯結(jié)構(gòu)設(shè)計(jì)任務(wù)1需求分析任務(wù)5數(shù)據(jù)庫(kù)實(shí)施任務(wù)1需求分析數(shù)據(jù)庫(kù)設(shè)計(jì)是數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)開發(fā)的重要環(huán)節(jié)。數(shù)據(jù)庫(kù)設(shè)計(jì)分為需求分析、概念設(shè)計(jì)、詳細(xì)設(shè)計(jì)及物理設(shè)計(jì)四階段。數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)開發(fā)設(shè)計(jì),先要作用戶需求分析。

需求分析主要分析客戶的業(yè)務(wù)和數(shù)據(jù)處理需求,通過(guò)需求分析對(duì)需要存儲(chǔ)的數(shù)據(jù)進(jìn)行收集和整理,并建立完整的數(shù)據(jù)集。收集數(shù)據(jù)的方法有:找相關(guān)人員作開會(huì)調(diào)查、發(fā)用戶調(diào)查表、查閱歷史資料數(shù)據(jù)、跟班作業(yè)、實(shí)際觀摩工作業(yè)務(wù)流程、編制各種實(shí)用報(bào)表等。

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

第一范式指表的每一列是不可再分的數(shù)據(jù)項(xiàng),同一列中不可有多個(gè)值,不能存在相同的兩行要求。任何一個(gè)關(guān)系數(shù)據(jù)庫(kù)中第一范式是對(duì)關(guān)系模式的基本要求,不滿足第一范式的數(shù)據(jù)庫(kù)不是關(guān)系數(shù)據(jù)庫(kù)。

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

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

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

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

任務(wù)5數(shù)據(jù)庫(kù)實(shí)施CREATETABLE`hr`.`regions`(`region_id`int(2)NOTNULLCOMMENT'地區(qū)編號(hào)',`region_name`varchar(25)NULLCOMMENT'地區(qū)名',PRIMARYKEY(`region_id`));

CREATETABLE`hr`.`countries`(`country_id`char(2)NOTNULLCOMMENT'國(guó)家編號(hào)',`country_name`varchar(30)NOTNULLCOMMENT'國(guó)家名',`region_id`int(2)NOTNULLCOMMENT'地區(qū)編號(hào)',PRIMARYKEY(`country_id`));任務(wù)5數(shù)據(jù)庫(kù)實(shí)施參照附錄“人力資源數(shù)據(jù)庫(kù)(HR)的表數(shù)據(jù)”,添加樣本數(shù)據(jù)到數(shù)據(jù)表中。部分樣本數(shù)據(jù)添加如下。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);任務(wù)5數(shù)據(jù)庫(kù)實(shí)施11.5.2存儲(chǔ)過(guò)程創(chuàng)建運(yùn)用存儲(chǔ)過(guò)程查詢員工信息,當(dāng)輸入員工的編號(hào)時(shí),顯示該員工的信息。這里運(yùn)用帶參數(shù)的存儲(chǔ)過(guò)程,將員工編號(hào)作為一個(gè)輸入型參數(shù)。代碼如下。CREATEDEFINER=`root`@`localhost`PROCEDURE`pro_cx`(inbhint)begindeclarebhintdefault0;select*fromemployeeswhereemployee_id=@bh;end;測(cè)試雇員編號(hào)為100的雇員情況,調(diào)用如下。Callpro_cx(100);任務(wù)5數(shù)據(jù)庫(kù)實(shí)施11.5.3數(shù)據(jù)庫(kù)應(yīng)用程序開發(fā)(1)啟動(dòng)Eclipse(2)選擇菜單命令“File”|“New”|“JavaProject”,打開“NewJavaProject”新建一個(gè)工程的對(duì)話框,在該對(duì)話框projectname的文本框中輸入“MyProj”,得到名稱為MyProj的Java工程,如圖11-9;1.創(chuàng)建Java工程(3)創(chuàng)建Java應(yīng)用程序一個(gè)Java應(yīng)用程序可包含多個(gè)類,但有且僅有一個(gè)類包含main()方法,它是作為程序的入口,在此先建一個(gè)類,以測(cè)試對(duì)數(shù)據(jù)庫(kù)的通訊連接圖11-92.連接數(shù)據(jù)庫(kù)importjava.sql.*;publicclassHrMysqlJdbc{ publicstaticvoidmain(String[]args){ try{ Class.forName("com.mysql.cj.jdbc.Driver");//1.加載驅(qū)動(dòng)

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

任務(wù)5數(shù)據(jù)庫(kù)實(shí)施 //2.獲取連接對(duì)象

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

Statementstmt=connect.createStatement();//數(shù)據(jù)源注意IP地址和端口號(hào),數(shù)據(jù)庫(kù)名字

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

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

Stringpassword="root"; Connectioncon=DriverManager.getConnection(connectDB,user,password);//連接數(shù)據(jù)庫(kù)對(duì)象

System.out.println("連接數(shù)據(jù)庫(kù)成功"); Statementstmt=con.createStatement();//創(chuàng)建SQL命令對(duì)象

//創(chuàng)建表

System.out.println("查詢"); System.out.println("開始讀取數(shù)據(jù)"); ResultSetrs=stmt.executeQuery("SELECT*FROMemployees");//返回SQL語(yǔ)句查詢結(jié)果集(集合)任務(wù)5數(shù)據(jù)庫(kù)實(shí)施//循環(huán)輸出每一條記錄 System.out.println("雇員編號(hào) \t雇員名\t雇員姓\(chéng)t郵箱\t電話\t\t入職日期\t\t\t崗位編號(hào)\t\t工資\t獎(jiǎng)金\t部門編號(hào)\t部門經(jīng)理編號(hào)"); while(rs.next()){ //輸出每個(gè)字段 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");任務(wù)5數(shù)據(jù)庫(kù)實(shí)施 } System.out.println("讀取完畢"); //關(guān)閉連接

stmt.close();//關(guān)閉命令對(duì)象連接

con.close();//關(guān)閉數(shù)據(jù)庫(kù)連接

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

在連接數(shù)據(jù)庫(kù)之前,首先要加載想要連接的數(shù)據(jù)庫(kù)的驅(qū)動(dòng)到JVM(Java虛擬機(jī)),這通過(guò)java.lang.Class類的靜態(tài)方法forName(StringclassName)實(shí)現(xiàn)。例如:try{ Class.forName(driverName); System.out.println("加載驅(qū)動(dòng)成功!");}catch(Exceptione){ e.printStackTrace(); System.out.println("加載驅(qū)動(dòng)失??!");}成功加載后,會(huì)將Driver類的實(shí)例注冊(cè)到DriverManager類中。任務(wù)5數(shù)據(jù)庫(kù)實(shí)施3.提供JDBC連接的URL

JDBCURL提供了一種標(biāo)識(shí)數(shù)據(jù)庫(kù)的方法,可以使相應(yīng)的驅(qū)動(dòng)程序能識(shí)別該數(shù)據(jù)庫(kù)并與之建立連接。實(shí)際上,驅(qū)動(dòng)程序編程員將決定用什么JDBCURL來(lái)標(biāo)識(shí)特定的驅(qū)動(dòng)程序。用戶不必關(guān)心如何來(lái)形成JDBCURL,他們只須使用與所用的驅(qū)動(dòng)程序一起提供的URL即可。JDBC的作用是提供某些約定,驅(qū)動(dòng)程序編程員在構(gòu)造他們的JDBCURL時(shí)應(yīng)該遵循這些約定。任務(wù)5數(shù)據(jù)庫(kù)實(shí)施

4.創(chuàng)建數(shù)據(jù)庫(kù)的連接

要連接數(shù)據(jù)庫(kù),需要向java.sql.DriverManager請(qǐng)求并獲得Connection對(duì)象,該對(duì)象代表一個(gè)數(shù)據(jù)庫(kù)的連接。

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

try{

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

任務(wù)5數(shù)據(jù)庫(kù)實(shí)施5.創(chuàng)建一個(gè)Statement對(duì)象

要執(zhí)行SQL語(yǔ)句,必須獲得java.sql.Statement實(shí)例,Statement實(shí)例分為以下3種類型。

(1)執(zhí)行靜態(tài)SQL語(yǔ)句。通常通過(guò)Statement實(shí)例實(shí)現(xiàn)。

(2)執(zhí)行動(dòng)態(tài)SQL語(yǔ)句。通常通過(guò)PreparedStatement實(shí)例實(shí)現(xiàn)。

(3)執(zhí)行數(shù)據(jù)庫(kù)存儲(chǔ)過(guò)程。通常通過(guò)CallableStatement實(shí)例實(shí)現(xiàn)。

具體的實(shí)現(xiàn)方式如下。

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

任務(wù)5數(shù)據(jù)庫(kù)實(shí)施6.執(zhí)行SQL語(yǔ)句

Statement接口提供了三種執(zhí)行SQL語(yǔ)句的方法:executeQuery、executeUpdate和exec

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論