




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
訪問(wèn)數(shù)據(jù)庫(kù)項(xiàng)目十高等院校公共課系列精品教材Java開發(fā)綜合實(shí)戰(zhàn)找對(duì)學(xué)習(xí)方法,注重前后知識(shí)的遷移,能舉一反三。鼓勵(lì)應(yīng)用創(chuàng)新,引導(dǎo)學(xué)生融會(huì)貫通,增強(qiáng)實(shí)踐能力。思政目標(biāo)能夠利用常用的SQL語(yǔ)句查詢、更新、添加和刪除記錄。能夠使用JDBC操作數(shù)據(jù)庫(kù)中的數(shù)據(jù)。技能目標(biāo)在開發(fā)應(yīng)用程序的過(guò)程中,數(shù)據(jù)庫(kù)扮演著十分重要的角色,絕大多數(shù)的應(yīng)用都需要使用數(shù)據(jù)庫(kù)來(lái)存儲(chǔ)和管理數(shù)據(jù)。JAVA提供了專門用于操作數(shù)據(jù)庫(kù)的API,即JDBC(JavaDatabaseConnectivity,Java數(shù)據(jù)庫(kù)連接),可以很容易地訪問(wèn)不同的數(shù)據(jù)庫(kù),對(duì)數(shù)據(jù)庫(kù)中的記錄實(shí)現(xiàn)查詢、修改、刪除和添加等操作。項(xiàng)目導(dǎo)讀任務(wù)1SQL語(yǔ)法基礎(chǔ)任務(wù)2使用JDBC訪問(wèn)數(shù)據(jù)庫(kù)知識(shí)梳理SQL語(yǔ)法基礎(chǔ)任務(wù)1任務(wù)1SQL語(yǔ)法基礎(chǔ)任務(wù)引入小白創(chuàng)建的進(jìn)銷存管理系統(tǒng)使用數(shù)組存儲(chǔ)商品信息,為便于后期的數(shù)據(jù)擴(kuò)容和管理,他決定利用數(shù)據(jù)庫(kù)存儲(chǔ)、管理商品數(shù)據(jù)。為熟悉數(shù)據(jù)查詢操作,他使用SQLServer創(chuàng)建了一個(gè)存儲(chǔ)學(xué)生成績(jī)的數(shù)據(jù)庫(kù)performance,并創(chuàng)建了一個(gè)成績(jī)表score、錄入了數(shù)據(jù)。如果他要查詢、更新、添加或刪除數(shù)據(jù)庫(kù)中的數(shù)據(jù),可以使用什么語(yǔ)句呢?知識(shí)準(zhǔn)備訪問(wèn)數(shù)據(jù)庫(kù)要使用SQL語(yǔ)句。SQL(StructuredQueryLanguage,結(jié)構(gòu)查詢語(yǔ)言)是一個(gè)用于與數(shù)據(jù)庫(kù)通信的數(shù)據(jù)庫(kù)語(yǔ)言,是關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)的標(biāo)準(zhǔn)語(yǔ)言。SQL語(yǔ)句主要有以下3大類,每一類語(yǔ)言包含或多或少的語(yǔ)句,使用在不同的應(yīng)用程序中。數(shù)據(jù)定義語(yǔ)言(DDL):用于定義數(shù)據(jù)的結(jié)構(gòu),例如創(chuàng)建、修改或刪除數(shù)據(jù)庫(kù)或數(shù)據(jù)庫(kù)中的對(duì)象(如表、視圖、存儲(chǔ)過(guò)程、觸發(fā)器等)。數(shù)據(jù)操縱語(yǔ)言(DML):用于操作數(shù)據(jù)表中的數(shù)據(jù),主要包括數(shù)據(jù)的插入、刪除、更新、查找、過(guò)濾和排序等,是最常用的核心SQL語(yǔ)言。數(shù)據(jù)控制語(yǔ)言(DCL):用于分配數(shù)據(jù)庫(kù)用戶的權(quán)限。任務(wù)1SQL語(yǔ)法基礎(chǔ)一、select語(yǔ)句該語(yǔ)句用于在數(shù)據(jù)表中檢索符合查詢條件的數(shù)據(jù)行,僅包含指定的字段。其語(yǔ)法格式如下:SELECT所選字段列表FROM數(shù)據(jù)表名[WHERE查詢條件表達(dá)式][ORDERBY字段名[ASC|DESC]如果要檢索數(shù)據(jù)表中的所有列,可以使用通配符(*)替代字段列表。任務(wù)1SQL語(yǔ)法基礎(chǔ)案例——查詢成績(jī)表SQLServer數(shù)據(jù)庫(kù)performance中的score表由一群學(xué)生的成績(jī)數(shù)據(jù)組成,每一行包含四個(gè)字段,即學(xué)生姓名、數(shù)學(xué)成績(jī)、語(yǔ)文成績(jī)和外語(yǔ)成績(jī),如圖所示。任務(wù)1SQL語(yǔ)法基礎(chǔ)
score表如果要查詢?cè)摫碇袛?shù)學(xué)成績(jī)?cè)?0及以上的學(xué)生名單及對(duì)應(yīng)的數(shù)學(xué)成績(jī),并將結(jié)果按降序排列,可以利用如下SQL語(yǔ)句:SELECTname,MathFROMscoreWHERE(Math>=90)ORDERBYMathDESC查詢的結(jié)果如圖所示。任務(wù)1SQL語(yǔ)法基礎(chǔ)二、insert語(yǔ)句INSERT語(yǔ)句用于在一個(gè)表中插入單行或多行數(shù)據(jù),同時(shí)賦給每個(gè)列相應(yīng)的值,如果這個(gè)值支持它們定義的物理順序中的所有的值,則不需要字段名。其語(yǔ)法格式如下:INSERT[INTO]表名或視圖名[(字段列表)]VALUES(字段值列表)例如,下面的語(yǔ)句在表score中插入了學(xué)生Alex的成績(jī)記錄:INSERTINTOscore(name,Math,Chinese,English)VALUES('Alex',87,93,92)任務(wù)1SQL語(yǔ)法基礎(chǔ)其中,字段列表可以省略。執(zhí)行上面的語(yǔ)句后,表score如圖示。任務(wù)1SQL語(yǔ)法基礎(chǔ)三、update語(yǔ)句UPDATE語(yǔ)句用于根據(jù)查詢條件更新數(shù)據(jù)表中的某些字段值。其語(yǔ)法格式如下:UPDATE數(shù)據(jù)表名SET字段名1=字段值1,字段名2=字段值2……WHERE條件表達(dá)式例如,使用以下語(yǔ)句,可以在表score中修改olivia的數(shù)學(xué)和英語(yǔ)成績(jī):UPDATEscoreSETMath=89,English=92WHERE(name='Olivia')注意:SQL語(yǔ)句中的字符串應(yīng)包含在單引號(hào)中。該語(yǔ)句執(zhí)行之后,表score如圖所示。任務(wù)1SQL語(yǔ)法基礎(chǔ)更新記錄后的score表四、delete語(yǔ)句該語(yǔ)句用于在數(shù)據(jù)庫(kù)中刪除符合指定條件的數(shù)據(jù)行,其語(yǔ)法格式如下:DELETEFROM數(shù)據(jù)表名[WHERE條件表達(dá)式]如果有查詢條件,則刪除與查詢條件相符的數(shù)據(jù)行;如果沒(méi)有查詢條件,將刪除所有的記錄。例如,下面的語(yǔ)句刪除表score中語(yǔ)文成績(jī)小于90分的成績(jī)記錄:DELETEFROMscoreWHERE(Chinese<90)任務(wù)1SQL語(yǔ)法基礎(chǔ)執(zhí)行上面的語(yǔ)句后,score表如圖所示。任務(wù)1SQL語(yǔ)法基礎(chǔ)使用JDBC訪問(wèn)數(shù)據(jù)庫(kù)任務(wù)2任務(wù)引入小白掌握了常用的查詢語(yǔ)句后,想利用圖形用戶界面修改數(shù)據(jù)庫(kù)中的數(shù)據(jù),但是怎樣將數(shù)據(jù)庫(kù)與Java應(yīng)用程序關(guān)聯(lián)起來(lái)呢?他查看相關(guān)資料得知,JDBC為連接數(shù)據(jù)庫(kù)提供了統(tǒng)一的規(guī)范,決定采用JDBC訪問(wèn)數(shù)據(jù)庫(kù)。接下來(lái)該如何在系統(tǒng)中部署JDBC,連接數(shù)據(jù)庫(kù)呢?查詢數(shù)據(jù)后怎樣輸出滿足條件的數(shù)據(jù)記錄呢?任務(wù)2使用JDBC訪問(wèn)數(shù)據(jù)庫(kù)知識(shí)準(zhǔn)備一、JDBC概述JDBC是一套用于執(zhí)行SQL語(yǔ)句的JavaAPI,提供了一套數(shù)據(jù)庫(kù)操作標(biāo)準(zhǔn),可以采用相同的API實(shí)現(xiàn)對(duì)多種關(guān)系型數(shù)據(jù)庫(kù)的統(tǒng)一操作,從而提高Java程序多數(shù)據(jù)庫(kù)的可移植性。簡(jiǎn)單來(lái)說(shuō),JDBC能完成下列三種功能:與一個(gè)數(shù)據(jù)庫(kù)建立連接向數(shù)據(jù)庫(kù)發(fā)送SQL語(yǔ)句處理數(shù)據(jù)庫(kù)返回的結(jié)果JDBC由兩層構(gòu)成:上層是JDBCAPI;下層是JDBC驅(qū)動(dòng)程序API任務(wù)2使用JDBC訪問(wèn)數(shù)據(jù)庫(kù)二、部署JDBC驅(qū)動(dòng)程序部署JDBC驅(qū)動(dòng)程序JDBC針對(duì)每一個(gè)數(shù)據(jù)庫(kù)廠商都提供了一個(gè)JDBC驅(qū)動(dòng)程序。在連接到數(shù)據(jù)庫(kù)之前,必須首先在本地計(jì)算機(jī)上安裝數(shù)據(jù)庫(kù)和JDBC驅(qū)動(dòng)程序。不同版本的JDBC驅(qū)動(dòng)程序?qū)RE的要求也不相同,因此部署JDBC驅(qū)動(dòng)程序之前,要先選擇正確的JAR類庫(kù)文件。例如MicrosoftJDBCDriver10.2安裝包中包含三個(gè)JAR類庫(kù):mssql-jdbc-10.2.0.jre8.jar、mssql-jdbc-10.2.0.jre11.jar和mssql-jdbc-10.2.0.jre17.jar。任務(wù)2使用JDBC訪問(wèn)數(shù)據(jù)庫(kù)由于JDBC類庫(kù)文件不是JavaSDK的一部分,因此,在下載合適的類庫(kù)文件后,應(yīng)將jar類庫(kù)文件包含在用戶應(yīng)用程序的環(huán)境變量classpath中。如果使用JDBCDriver10.2,應(yīng)在classpath中包括mssql-jdbc-10.2.0.jre8.jar、mssql-jdbc-10.2.0.jre11.jar或mssql-jdbc-10.2.0.jre17.jar,如圖所示。任務(wù)2使用JDBC訪問(wèn)數(shù)據(jù)庫(kù)設(shè)置變量CLASSPATH如果在IDE中運(yùn)行訪問(wèn)數(shù)據(jù)庫(kù)的Java項(xiàng)目,需要將JDBC數(shù)據(jù)庫(kù)驅(qū)動(dòng)包添加到當(dāng)前項(xiàng)目的構(gòu)建路徑中,步驟如下。(1)在Eclipse中右擊項(xiàng)目名,從彈出的快捷菜單中選擇BuildPath→ConfigureBuildPath...命令。(2)在打開的對(duì)話框左側(cè)窗格中選中“JavaBuildPath”節(jié)點(diǎn),然后在Libraries選項(xiàng)卡中選中Classpath,單擊AddLibrary...按鈕,如圖所示。(3)在打開的AddLibrary對(duì)話框的庫(kù)列表框中選擇“UserLibrary”,然后單擊Next按鈕,在彈出的對(duì)話框中,依次單擊UserLibraries按鈕,New按鈕,新建一個(gè)用戶庫(kù)的名稱。(4)依次單擊OK按鈕和ApplyandClose按鈕關(guān)閉對(duì)話框。任務(wù)2使用JDBC訪問(wèn)數(shù)據(jù)庫(kù)任務(wù)2使用JDBC訪問(wèn)數(shù)據(jù)庫(kù)
項(xiàng)目屬性對(duì)話框
創(chuàng)建的用戶庫(kù)(5)依次單擊ApplyandClose按鈕和Finish按鈕關(guān)閉對(duì)話框。此時(shí)在項(xiàng)目的屬性對(duì)話框中可以看到添加的類庫(kù)路徑,如圖所示。(6)添加完成后,單擊ApplyandClose按鈕關(guān)閉對(duì)話框。任務(wù)2使用JDBC訪問(wèn)數(shù)據(jù)庫(kù)添加的類庫(kù)路徑三、連接數(shù)據(jù)庫(kù)使用JDBC數(shù)據(jù)庫(kù)驅(qū)動(dòng)方式和數(shù)據(jù)庫(kù)建立連接需要經(jīng)過(guò)兩個(gè)步驟:(1)注冊(cè)JDBC驅(qū)動(dòng)程序;(2)與指定數(shù)據(jù)庫(kù)建立連接。這些操作使用JDBC中的Driver接口、DriverManager類和Connection接口實(shí)現(xiàn)。1.注冊(cè)驅(qū)動(dòng)程序注冊(cè)驅(qū)動(dòng)程序就是將特定數(shù)據(jù)庫(kù)的驅(qū)動(dòng)程序類裝載到JVM。每種數(shù)據(jù)庫(kù)的驅(qū)動(dòng)程序都提供一個(gè)實(shí)現(xiàn)Driver接口的類,簡(jiǎn)稱Driver類,是應(yīng)用程序必須首先加載的類,用于向驅(qū)動(dòng)程序管理器(java.sql.DriverManager類)注冊(cè)該類的實(shí)例,以便驅(qū)動(dòng)程序管理器管理數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序。任務(wù)2使用JDBC訪問(wèn)數(shù)據(jù)庫(kù)2.建立連接注冊(cè)數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序后,JVM和數(shù)據(jù)庫(kù)之間還沒(méi)有直接聯(lián)系,需要調(diào)用DriverManager類的靜態(tài)方法getConnection()方法獲得一個(gè)數(shù)據(jù)庫(kù)連接對(duì)象,建立Java應(yīng)用程序與指定數(shù)據(jù)庫(kù)之間的聯(lián)系。建立數(shù)據(jù)庫(kù)連接對(duì)象的過(guò)程涉及兩個(gè)主要API:java.sql.DriverManager類和java.sql.Connection接口。任務(wù)2使用JDBC訪問(wèn)數(shù)據(jù)庫(kù)四、操作數(shù)據(jù)庫(kù)與數(shù)據(jù)庫(kù)建立連接后,就可以使用JDBC提供的API與數(shù)據(jù)庫(kù)進(jìn)行交互。交互的主要方式是使用SQL語(yǔ)句,JDBC將標(biāo)準(zhǔn)的SQL語(yǔ)句發(fā)送給數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)執(zhí)行指令并處理查詢結(jié)果,返回結(jié)果集。1.發(fā)送、執(zhí)行SQL指令向數(shù)據(jù)庫(kù)發(fā)送SQL指令需要使用Statement接口類對(duì)象聲明一個(gè)SQL語(yǔ)句,然后通過(guò)創(chuàng)建的數(shù)據(jù)庫(kù)連接對(duì)象調(diào)用方法createStatement()創(chuàng)建這個(gè)SQL語(yǔ)句對(duì)象任務(wù)2使用JDBC訪問(wèn)數(shù)據(jù)庫(kù)Statement接口包含以下3種執(zhí)行SQL語(yǔ)句的方法。execute(Stringsql):可執(zhí)行任何SQL語(yǔ)句,返回結(jié)果為布爾值。如果值為true,表明有結(jié)果集,通常是執(zhí)行了select查詢語(yǔ)句;如果值為false,表明沒(méi)有結(jié)果集,通常是執(zhí)行了insert、delete、update等增刪改語(yǔ)句。executeQuery(Stringsql):通常執(zhí)行select查詢語(yǔ)句,返回單個(gè)ResultSet結(jié)果集。executeUpdate(Stringsql):常用于執(zhí)行DML和DDL語(yǔ)句,返回值為int型。任務(wù)2使用JDBC訪問(wèn)數(shù)據(jù)庫(kù)任務(wù)2使用JDBC訪問(wèn)數(shù)據(jù)庫(kù)2.返回結(jié)果集如果執(zhí)行的SQL語(yǔ)句是查詢語(yǔ)句,將返回一個(gè)ResultSet對(duì)象存放查詢結(jié)果。ResultSet對(duì)象由按字段組織的數(shù)據(jù)行構(gòu)成,并具有指向當(dāng)前數(shù)據(jù)行的游標(biāo)。任務(wù)2使用JDBC訪問(wèn)數(shù)據(jù)庫(kù)任務(wù)2使用JDBC訪問(wèn)數(shù)據(jù)庫(kù)注意:對(duì)數(shù)據(jù)庫(kù)與Connection對(duì)象是有緊密聯(lián)系的,如果使用close()方法關(guān)閉連接對(duì)象,ResultSet進(jìn)行操作時(shí),返回的ResultSet對(duì)象對(duì)象中的數(shù)據(jù)會(huì)即刻消失。因此,應(yīng)在數(shù)據(jù)庫(kù)操作結(jié)束后關(guān)閉數(shù)據(jù)庫(kù)連接,釋放資源,包括關(guān)閉ResultSet和Statement等資源。任務(wù)2使用JDBC訪問(wèn)數(shù)據(jù)庫(kù)案例——修改學(xué)生成績(jī)表本案例利用圖形用戶界面修改SQLServer數(shù)據(jù)庫(kù)performance中的學(xué)生成績(jī)表score。成績(jī)表score的初始數(shù)據(jù)行如圖所示。任務(wù)2使用JDBC訪問(wèn)數(shù)據(jù)庫(kù)初始數(shù)據(jù)表
圖形用戶界面
插入記錄任務(wù)2使用JDBC訪問(wèn)數(shù)據(jù)庫(kù)修改記錄
刪除記錄操作后的數(shù)據(jù)表項(xiàng)目總結(jié)為了便于存儲(chǔ)、管理入庫(kù)和出庫(kù)商品,小白決定使用JDBC+SQLServer改進(jìn)、完善進(jìn)銷存管理系統(tǒng)。(1)啟動(dòng)SQLServerManagementStudio并登錄,新建一個(gè)名為products的數(shù)據(jù)庫(kù),然后在數(shù)據(jù)庫(kù)中添加一個(gè)名為inbound的數(shù)據(jù)表。數(shù)據(jù)表的結(jié)構(gòu)如圖所示。(2)在Eclipse中復(fù)制并粘貼項(xiàng)目“進(jìn)銷存管理系統(tǒng)V9.0”,在CopyProject對(duì)話框中修改項(xiàng)目名稱為“進(jìn)銷存管理系統(tǒng)V10.0”,然后單擊Copy按鈕關(guān)閉對(duì)話框。(3)在項(xiàng)目中添加與JRE匹配的JDBCJAR包文件(與JRE17匹配的包文件為mssql-jdbc-10.2.0.jre17.jar)。項(xiàng)目實(shí)戰(zhàn)設(shè)計(jì)數(shù)據(jù)表inbound(4)在項(xiàng)目中添加一個(gè)名為data的包,然后在該包中添加一個(gè)名為DBConnect.java的類,用于管理數(shù)據(jù)庫(kù)連接。(5)修改ServerControllers.java,通過(guò)操作數(shù)據(jù)庫(kù)處理商品入庫(kù)、出庫(kù)和查詢的操作。(6)依次運(yùn)行Server.java和MainFrame.java,在客戶端主界面單擊“商品入庫(kù)”按鈕,入庫(kù)兩種商品,如圖所示。此時(shí)打開數(shù)據(jù)庫(kù),在數(shù)據(jù)表中可以看到入庫(kù)的商品信息,如圖所示。項(xiàng)目實(shí)戰(zhàn)商品入庫(kù)
商品入庫(kù)后的數(shù)據(jù)表(7)在客戶端返回主界面,單擊“商品出庫(kù)”按鈕,出庫(kù)一種商品,如圖所示,此時(shí)的數(shù)據(jù)
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2.2社會(huì)主義制度在中國(guó)的確立 課件 統(tǒng)編版高中思想政治必修1中國(guó)特色社會(huì)主義
- 納稅評(píng)估工作總結(jié)十篇
- 老年日??祻?fù)護(hù)理課件
- 老年護(hù)理課件題目
- 老年人慢性病課件
- 老年中醫(yī)課件制作
- 通信設(shè)備車間使用權(quán)及技術(shù)轉(zhuǎn)讓合同模板
- 保險(xiǎn)理賠責(zé)任限制條件合同
- 大學(xué)國(guó)家安全教育考試試題及答案
- 輔警培訓(xùn)課件
- 質(zhì)量合格評(píng)定協(xié)會(huì)認(rèn)證認(rèn)可專家管理辦法
- 2024年江蘇天寧城市發(fā)展集團(tuán)有限公司招聘筆試沖刺題(帶答案解析)
- 機(jī)械加工安全操作規(guī)程培訓(xùn)
- (高清版)CJJT 30-2024 糞便處理廠運(yùn)行維護(hù)及其安全技術(shù)標(biāo)準(zhǔn)
- 安全檢查工安全培訓(xùn)教學(xué)教案
- 2024年浙江省新華書店集團(tuán)招聘筆試參考題庫(kù)附帶答案詳解
- 1.知識(shí)點(diǎn)1-2-1 理解曝光三要素與曝光量
- 《中華民族共同體概論》考試復(fù)習(xí)題庫(kù)(含答案)
- PTBD管路維護(hù)技術(shù)
- 220kV變電運(yùn)行中的故障排除方法
- 30題投資管理類崗位常見(jiàn)面試問(wèn)題含HR問(wèn)題考察點(diǎn)及參考回答
評(píng)論
0/150
提交評(píng)論