項目10 訪問數(shù)據(jù)庫_第1頁
項目10 訪問數(shù)據(jù)庫_第2頁
項目10 訪問數(shù)據(jù)庫_第3頁
項目10 訪問數(shù)據(jù)庫_第4頁
項目10 訪問數(shù)據(jù)庫_第5頁
已閱讀5頁,還剩35頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

訪問數(shù)據(jù)庫項目十高等院校公共課系列精品教材Java開發(fā)綜合實戰(zhàn)找對學習方法,注重前后知識的遷移,能舉一反三。鼓勵應用創(chuàng)新,引導學生融會貫通,增強實踐能力。思政目標能夠利用常用的SQL語句查詢、更新、添加和刪除記錄。能夠使用JDBC操作數(shù)據(jù)庫中的數(shù)據(jù)。技能目標在開發(fā)應用程序的過程中,數(shù)據(jù)庫扮演著十分重要的角色,絕大多數(shù)的應用都需要使用數(shù)據(jù)庫來存儲和管理數(shù)據(jù)。JAVA提供了專門用于操作數(shù)據(jù)庫的API,即JDBC(JavaDatabaseConnectivity,Java數(shù)據(jù)庫連接),可以很容易地訪問不同的數(shù)據(jù)庫,對數(shù)據(jù)庫中的記錄實現(xiàn)查詢、修改、刪除和添加等操作。項目導讀任務1SQL語法基礎任務2使用JDBC訪問數(shù)據(jù)庫知識梳理SQL語法基礎任務1任務1SQL語法基礎任務引入小白創(chuàng)建的進銷存管理系統(tǒng)使用數(shù)組存儲商品信息,為便于后期的數(shù)據(jù)擴容和管理,他決定利用數(shù)據(jù)庫存儲、管理商品數(shù)據(jù)。為熟悉數(shù)據(jù)查詢操作,他使用SQLServer創(chuàng)建了一個存儲學生成績的數(shù)據(jù)庫performance,并創(chuàng)建了一個成績表score、錄入了數(shù)據(jù)。如果他要查詢、更新、添加或刪除數(shù)據(jù)庫中的數(shù)據(jù),可以使用什么語句呢?知識準備訪問數(shù)據(jù)庫要使用SQL語句。SQL(StructuredQueryLanguage,結構查詢語言)是一個用于與數(shù)據(jù)庫通信的數(shù)據(jù)庫語言,是關系數(shù)據(jù)庫管理系統(tǒng)的標準語言。SQL語句主要有以下3大類,每一類語言包含或多或少的語句,使用在不同的應用程序中。數(shù)據(jù)定義語言(DDL):用于定義數(shù)據(jù)的結構,例如創(chuàng)建、修改或刪除數(shù)據(jù)庫或數(shù)據(jù)庫中的對象(如表、視圖、存儲過程、觸發(fā)器等)。數(shù)據(jù)操縱語言(DML):用于操作數(shù)據(jù)表中的數(shù)據(jù),主要包括數(shù)據(jù)的插入、刪除、更新、查找、過濾和排序等,是最常用的核心SQL語言。數(shù)據(jù)控制語言(DCL):用于分配數(shù)據(jù)庫用戶的權限。任務1SQL語法基礎一、select語句該語句用于在數(shù)據(jù)表中檢索符合查詢條件的數(shù)據(jù)行,僅包含指定的字段。其語法格式如下:SELECT所選字段列表FROM數(shù)據(jù)表名[WHERE查詢條件表達式][ORDERBY字段名[ASC|DESC]如果要檢索數(shù)據(jù)表中的所有列,可以使用通配符(*)替代字段列表。任務1SQL語法基礎案例——查詢成績表SQLServer數(shù)據(jù)庫performance中的score表由一群學生的成績數(shù)據(jù)組成,每一行包含四個字段,即學生姓名、數(shù)學成績、語文成績和外語成績,如圖所示。任務1SQL語法基礎

score表如果要查詢該表中數(shù)學成績在90及以上的學生名單及對應的數(shù)學成績,并將結果按降序排列,可以利用如下SQL語句:SELECTname,MathFROMscoreWHERE(Math>=90)ORDERBYMathDESC查詢的結果如圖所示。任務1SQL語法基礎二、insert語句INSERT語句用于在一個表中插入單行或多行數(shù)據(jù),同時賦給每個列相應的值,如果這個值支持它們定義的物理順序中的所有的值,則不需要字段名。其語法格式如下:INSERT[INTO]表名或視圖名[(字段列表)]VALUES(字段值列表)例如,下面的語句在表score中插入了學生Alex的成績記錄:INSERTINTOscore(name,Math,Chinese,English)VALUES('Alex',87,93,92)任務1SQL語法基礎其中,字段列表可以省略。執(zhí)行上面的語句后,表score如圖示。任務1SQL語法基礎三、update語句UPDATE語句用于根據(jù)查詢條件更新數(shù)據(jù)表中的某些字段值。其語法格式如下:UPDATE數(shù)據(jù)表名SET字段名1=字段值1,字段名2=字段值2……WHERE條件表達式例如,使用以下語句,可以在表score中修改olivia的數(shù)學和英語成績:UPDATEscoreSETMath=89,English=92WHERE(name='Olivia')注意:SQL語句中的字符串應包含在單引號中。該語句執(zhí)行之后,表score如圖所示。任務1SQL語法基礎更新記錄后的score表四、delete語句該語句用于在數(shù)據(jù)庫中刪除符合指定條件的數(shù)據(jù)行,其語法格式如下:DELETEFROM數(shù)據(jù)表名[WHERE條件表達式]如果有查詢條件,則刪除與查詢條件相符的數(shù)據(jù)行;如果沒有查詢條件,將刪除所有的記錄。例如,下面的語句刪除表score中語文成績小于90分的成績記錄:DELETEFROMscoreWHERE(Chinese<90)任務1SQL語法基礎執(zhí)行上面的語句后,score表如圖所示。任務1SQL語法基礎使用JDBC訪問數(shù)據(jù)庫任務2任務引入小白掌握了常用的查詢語句后,想利用圖形用戶界面修改數(shù)據(jù)庫中的數(shù)據(jù),但是怎樣將數(shù)據(jù)庫與Java應用程序關聯(lián)起來呢?他查看相關資料得知,JDBC為連接數(shù)據(jù)庫提供了統(tǒng)一的規(guī)范,決定采用JDBC訪問數(shù)據(jù)庫。接下來該如何在系統(tǒng)中部署JDBC,連接數(shù)據(jù)庫呢?查詢數(shù)據(jù)后怎樣輸出滿足條件的數(shù)據(jù)記錄呢?任務2使用JDBC訪問數(shù)據(jù)庫知識準備一、JDBC概述JDBC是一套用于執(zhí)行SQL語句的JavaAPI,提供了一套數(shù)據(jù)庫操作標準,可以采用相同的API實現(xiàn)對多種關系型數(shù)據(jù)庫的統(tǒng)一操作,從而提高Java程序多數(shù)據(jù)庫的可移植性。簡單來說,JDBC能完成下列三種功能:與一個數(shù)據(jù)庫建立連接向數(shù)據(jù)庫發(fā)送SQL語句處理數(shù)據(jù)庫返回的結果JDBC由兩層構成:上層是JDBCAPI;下層是JDBC驅(qū)動程序API任務2使用JDBC訪問數(shù)據(jù)庫二、部署JDBC驅(qū)動程序部署JDBC驅(qū)動程序JDBC針對每一個數(shù)據(jù)庫廠商都提供了一個JDBC驅(qū)動程序。在連接到數(shù)據(jù)庫之前,必須首先在本地計算機上安裝數(shù)據(jù)庫和JDBC驅(qū)動程序。不同版本的JDBC驅(qū)動程序?qū)RE的要求也不相同,因此部署JDBC驅(qū)動程序之前,要先選擇正確的JAR類庫文件。例如MicrosoftJDBCDriver10.2安裝包中包含三個JAR類庫:mssql-jdbc-10.2.0.jre8.jar、mssql-jdbc-10.2.0.jre11.jar和mssql-jdbc-10.2.0.jre17.jar。任務2使用JDBC訪問數(shù)據(jù)庫由于JDBC類庫文件不是JavaSDK的一部分,因此,在下載合適的類庫文件后,應將jar類庫文件包含在用戶應用程序的環(huán)境變量classpath中。如果使用JDBCDriver10.2,應在classpath中包括mssql-jdbc-10.2.0.jre8.jar、mssql-jdbc-10.2.0.jre11.jar或mssql-jdbc-10.2.0.jre17.jar,如圖所示。任務2使用JDBC訪問數(shù)據(jù)庫設置變量CLASSPATH如果在IDE中運行訪問數(shù)據(jù)庫的Java項目,需要將JDBC數(shù)據(jù)庫驅(qū)動包添加到當前項目的構建路徑中,步驟如下。(1)在Eclipse中右擊項目名,從彈出的快捷菜單中選擇BuildPath→ConfigureBuildPath...命令。(2)在打開的對話框左側(cè)窗格中選中“JavaBuildPath”節(jié)點,然后在Libraries選項卡中選中Classpath,單擊AddLibrary...按鈕,如圖所示。(3)在打開的AddLibrary對話框的庫列表框中選擇“UserLibrary”,然后單擊Next按鈕,在彈出的對話框中,依次單擊UserLibraries按鈕,New按鈕,新建一個用戶庫的名稱。(4)依次單擊OK按鈕和ApplyandClose按鈕關閉對話框。任務2使用JDBC訪問數(shù)據(jù)庫任務2使用JDBC訪問數(shù)據(jù)庫

項目屬性對話框

創(chuàng)建的用戶庫(5)依次單擊ApplyandClose按鈕和Finish按鈕關閉對話框。此時在項目的屬性對話框中可以看到添加的類庫路徑,如圖所示。(6)添加完成后,單擊ApplyandClose按鈕關閉對話框。任務2使用JDBC訪問數(shù)據(jù)庫添加的類庫路徑三、連接數(shù)據(jù)庫使用JDBC數(shù)據(jù)庫驅(qū)動方式和數(shù)據(jù)庫建立連接需要經(jīng)過兩個步驟:(1)注冊JDBC驅(qū)動程序;(2)與指定數(shù)據(jù)庫建立連接。這些操作使用JDBC中的Driver接口、DriverManager類和Connection接口實現(xiàn)。1.注冊驅(qū)動程序注冊驅(qū)動程序就是將特定數(shù)據(jù)庫的驅(qū)動程序類裝載到JVM。每種數(shù)據(jù)庫的驅(qū)動程序都提供一個實現(xiàn)Driver接口的類,簡稱Driver類,是應用程序必須首先加載的類,用于向驅(qū)動程序管理器(java.sql.DriverManager類)注冊該類的實例,以便驅(qū)動程序管理器管理數(shù)據(jù)庫驅(qū)動程序。任務2使用JDBC訪問數(shù)據(jù)庫2.建立連接注冊數(shù)據(jù)庫驅(qū)動程序后,JVM和數(shù)據(jù)庫之間還沒有直接聯(lián)系,需要調(diào)用DriverManager類的靜態(tài)方法getConnection()方法獲得一個數(shù)據(jù)庫連接對象,建立Java應用程序與指定數(shù)據(jù)庫之間的聯(lián)系。建立數(shù)據(jù)庫連接對象的過程涉及兩個主要API:java.sql.DriverManager類和java.sql.Connection接口。任務2使用JDBC訪問數(shù)據(jù)庫四、操作數(shù)據(jù)庫與數(shù)據(jù)庫建立連接后,就可以使用JDBC提供的API與數(shù)據(jù)庫進行交互。交互的主要方式是使用SQL語句,JDBC將標準的SQL語句發(fā)送給數(shù)據(jù)庫,數(shù)據(jù)庫執(zhí)行指令并處理查詢結果,返回結果集。1.發(fā)送、執(zhí)行SQL指令向數(shù)據(jù)庫發(fā)送SQL指令需要使用Statement接口類對象聲明一個SQL語句,然后通過創(chuàng)建的數(shù)據(jù)庫連接對象調(diào)用方法createStatement()創(chuàng)建這個SQL語句對象任務2使用JDBC訪問數(shù)據(jù)庫Statement接口包含以下3種執(zhí)行SQL語句的方法。execute(Stringsql):可執(zhí)行任何SQL語句,返回結果為布爾值。如果值為true,表明有結果集,通常是執(zhí)行了select查詢語句;如果值為false,表明沒有結果集,通常是執(zhí)行了insert、delete、update等增刪改語句。executeQuery(Stringsql):通常執(zhí)行select查詢語句,返回單個ResultSet結果集。executeUpdate(Stringsql):常用于執(zhí)行DML和DDL語句,返回值為int型。任務2使用JDBC訪問數(shù)據(jù)庫任務2使用JDBC訪問數(shù)據(jù)庫2.返回結果集如果執(zhí)行的SQL語句是查詢語句,將返回一個ResultSet對象存放查詢結果。ResultSet對象由按字段組織的數(shù)據(jù)行構成,并具有指向當前數(shù)據(jù)行的游標。任務2使用JDBC訪問數(shù)據(jù)庫任務2使用JDBC訪問數(shù)據(jù)庫注意:對數(shù)據(jù)庫與Connection對象是有緊密聯(lián)系的,如果使用close()方法關閉連接對象,ResultSet進行操作時,返回的ResultSet對象對象中的數(shù)據(jù)會即刻消失。因此,應在數(shù)據(jù)庫操作結束后關閉數(shù)據(jù)庫連接,釋放資源,包括關閉ResultSet和Statement等資源。任務2使用JDBC訪問數(shù)據(jù)庫案例——修改學生成績表本案例利用圖形用戶界面修改SQLServer數(shù)據(jù)庫performance中的學生成績表score。成績表score的初始數(shù)據(jù)行如圖所示。任務2使用JDBC訪問數(shù)據(jù)庫初始數(shù)據(jù)表

圖形用戶界面

插入記錄任務2使用JDBC訪問數(shù)據(jù)庫修改記錄

刪除記錄操作后的數(shù)據(jù)表項目總結為了便于存儲、管理入庫和出庫商品,小白決定使用JDBC+SQLServer改進、完善進銷存管理系統(tǒng)。(1)啟動SQLServerManagementStudio并登錄,新建一個名為products的數(shù)據(jù)庫,然后在數(shù)據(jù)庫中添加一個名為inbound的數(shù)據(jù)表。數(shù)據(jù)表的結構如圖所示。(2)在Eclipse中復制并粘貼項目“進銷存管理系統(tǒng)V9.0”,在CopyProject對話框中修改項目名稱為“進銷存管理系統(tǒng)V10.0”,然后單擊Copy按鈕關閉對話框。(3)在項目中添加與JRE匹配的JDBCJAR包文件(與JRE17匹配的包文件為mssql-jdbc-10.2.0.jre17.jar)。項目實戰(zhàn)設計數(shù)據(jù)表inbound(4)在項目中添加一個名為data的包,然后在該包中添加一個名為DBConnect.java的類,用于管理數(shù)據(jù)庫連接。(5)修改ServerControllers.java,通過操作數(shù)據(jù)庫處理商品入庫、出庫和查詢的操作。(6)依次運行Server.java和MainFrame.java,在客戶端主界面單擊“商品入庫”按鈕,入庫兩種商品,如圖所示。此時打開數(shù)據(jù)庫,在數(shù)據(jù)表中可以看到入庫的商品信息,如圖所示。項目實戰(zhàn)商品入庫

商品入庫后的數(shù)據(jù)表(7)在客戶端返回主界面,單擊“商品出庫”按鈕,出庫一種商品,如圖所示,此時的數(shù)據(jù)

溫馨提示

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

評論

0/150

提交評論