《數(shù)據(jù)庫連接JDBC》PPT課件.ppt

上傳人:w****2 文檔編號:14709703 上傳時間:2020-07-29 格式:PPT 頁數(shù):26 大?。?94KB
收藏 版權(quán)申訴 舉報 下載
《數(shù)據(jù)庫連接JDBC》PPT課件.ppt_第1頁
第1頁 / 共26頁
《數(shù)據(jù)庫連接JDBC》PPT課件.ppt_第2頁
第2頁 / 共26頁
《數(shù)據(jù)庫連接JDBC》PPT課件.ppt_第3頁
第3頁 / 共26頁

下載文檔到電腦,查找使用更方便

9.9 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《《數(shù)據(jù)庫連接JDBC》PPT課件.ppt》由會員分享,可在線閱讀,更多相關(guān)《《數(shù)據(jù)庫連接JDBC》PPT課件.ppt(26頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、第7講,數(shù)據(jù)庫連接(JDBC),2,綱要,數(shù)據(jù)庫知識的復(fù)習(xí) 基本SQL語句 JDBC基礎(chǔ) 增、刪、改、查操作舉例 預(yù)處理語句的使用,3,1. 數(shù)據(jù)庫知識的復(fù)習(xí),大家已修讀過數(shù)據(jù)庫系統(tǒng)課程,這里只復(fù)習(xí)有關(guān)知識: 關(guān)系型數(shù)據(jù)庫、DBMS、表、字段、記錄、數(shù)據(jù)庫,,,,,一個數(shù)據(jù)庫可以包含多個表,4,數(shù)據(jù)的各種操作技術(shù),數(shù)據(jù)查找(SELECT) 例如:SELECT * FROM factory_tb where factory_id=12 數(shù)據(jù)插入(INSERT) 例如:INSERT INTO productClass_tb VALUES(背包) 數(shù)據(jù)刪除(DELETE) 例如:DELETE FRO

2、M factory_tb WHERE factory_id =04 數(shù)據(jù)更新(UPDATE) 例如: UPDATE productClass_tb SET productClass_name=挎包 WHERE productClass_id=01,5,JDBC是Java DataBase Connectivity(Java 數(shù)據(jù)連接)技術(shù)的簡稱,是一種可用于執(zhí)行SQL語句的Java API。它由一些Java語言編寫的類和接口組成; JDBC為數(shù)據(jù)庫應(yīng)用開發(fā)人員、數(shù)據(jù)庫前臺工具開發(fā)人員提供了一種標準的應(yīng)用程序設(shè)計接口,使開發(fā)人員可以用純Java語言編寫完整的數(shù)據(jù)庫應(yīng)用程序。,JDBC基礎(chǔ),6,J

3、DBC主要功能: (1)與數(shù)據(jù)庫建立連接;(2)向數(shù)據(jù)庫發(fā)送SQL語句; (3)處理數(shù)據(jù)返回的結(jié)果。,7,JDBC有兩個程序包: java.sql:核心包,這個包中的類主要完成數(shù)據(jù)庫的基本操作,如生成連接、執(zhí)行SQL語句、預(yù)處理SQL語句等; javax.sql:擴展包,主要為數(shù)據(jù)庫方面的高級操作提供了接口和類。 JDBC常用類和接口: Driver 接口:加載驅(qū)動程序 DriverManager類:裝入所需的驅(qū)動程序,編程時調(diào)用它的方法來創(chuàng)建連接; Connection接口:編程時使用該類對象創(chuàng)建Statement對象; Statement接口:編程時使用該類對象得到ResultSet對象,

4、JDBC的類與接口,8,JDBC,JDBC (Java 數(shù)據(jù)庫連接) (sun公司提供),Java 應(yīng)用程序編程接口,Java應(yīng)用程序,,,數(shù)據(jù)庫,插 入,,,修 改,刪 除,查詢,,,9,數(shù)據(jù)庫,ODBC,客戶機/服務(wù)器 GUI應(yīng)用程序,ODBC (開放式數(shù)據(jù)庫連接) (Microsoft 提供),,,插 入,,刪 除,修 改,應(yīng)用程序編程接口,,查詢,,,10,JDBC 驅(qū)動程序的類型,JDBC 驅(qū)動程序 的類型,,,,,,JDBC-ODBC橋驅(qū)動程序及ODBC驅(qū)動程序,本地API部分Java驅(qū)動程序,JDBC-Net 純Java驅(qū)動程序,本地協(xié)議純Java驅(qū)動程序,,每種不同的數(shù)據(jù)庫的驅(qū)

5、動程序都不同,但從類型上分為四類,11,操作步驟: 創(chuàng)建數(shù)據(jù)源(使用JDBC-ODBC橋式驅(qū)動程序時必需創(chuàng)建); 注冊、加載特定的驅(qū)動程序; 創(chuàng)建連接-- Connection對象; 利用Connection對象生成Statement對象; 利用Statement對象執(zhí)行SQL語句,如增、刪、改、查; 若是執(zhí)行查詢語句,還要從ResultSet讀取數(shù)據(jù); 關(guān)閉ResultSet、Statement、Connection等。,JDBC的使用(重點),12,(1)創(chuàng)建數(shù)據(jù)源: Windows操作系統(tǒng):開始/管理工具/數(shù)據(jù)源(ODBC),選擇用戶DSN,點擊”添加”按鈕; 選擇對應(yīng)的驅(qū)動程序,如:M

6、icrosoft Access Driver (*.mdb)。,13,(1)創(chuàng)建數(shù)據(jù)源(續(xù)):,14,(2)加載驅(qū)動程序: 格式:Class.forName(驅(qū)動程序名稱); 請注意:不同類型的數(shù)據(jù)庫加載的驅(qū)動程序不同: JDBC-ODBC橋式: Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”); Ms SQL sever : SQL 2000: Class.forName(“com.microsoft.jdbc.sqlserver.SQLServerDriver”); SQL 2005: Class.forName(“com.microsoft.sq

7、lserver.jdbc.SQLServerDriver ”);,15,下載對應(yīng)的JDBC驅(qū)動程序jar包文件,放入Tomcat的lib子目錄中或web項目的WEB-INF/lib中。,SQL Server 2000驅(qū)動程序的Jar包有3個文件:,SQL Server 2005驅(qū)動程序的Jar包有1個文件:,16,成功加載后,會將加載的驅(qū)動類注冊給DriverManager類,如果加載失敗,將拋出ClassNotFoundException異常,即未找到指定的驅(qū)動類,所以需要在加載數(shù)據(jù)庫驅(qū)動類時捕捉可能拋出的異常。,try Class.forName(sun.jdbc.odbc.JdbcO

8、dbcDriver); catch (ClassNotFoundException e) System.out.println(加載數(shù)據(jù)庫驅(qū)動時拋出異常,內(nèi)容如下:); e.printStackTrace(); ,17,(3)創(chuàng)建數(shù)據(jù)庫連接: 格式:Connection conn = DriverManager.getConnection(url,“用戶名, 密碼); 其中:url類似于互聯(lián)網(wǎng)的地址,它由三部分組成,即: 協(xié)議:子協(xié)議:子命名,協(xié)議通常是jdbc,子協(xié)議是接受DBMS的名稱和版本,子名字通常是數(shù)據(jù)源。 JDBC-ODBC橋式: jdbc:odbc:數(shù)據(jù)源名,例如: jdb

9、c:odbc:myAccess Ms SQL sever : jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=數(shù)據(jù)庫名 (適用于SQL 2000) jdbc:sqlserver://127.0.0.1:1433;DatabaseName= 數(shù)據(jù)庫名 (適用于SQL 2005),18,(4)利用Connection對象生成Statement對象(即會話): 格式:Statement stmt = conn.createStatement( ); 或 conn.createStatement(int resultSetType,

10、 int resultSetConcurrency) 其中: resultSetType只能是以下三個值之一: ResultSet.TYPE_FORWARD_ONLY ResultSet.TYPE_SCROLL_INSENSITIVE ResultSet.TYPE_SCROLL_SENSITIVE resultSetConcurrency只能是以下兩個值之一: ResultSet.CONCUR_READ_ONLY ResultSet.CONCUR_UPDATABLE,19,(5)利用Statement對象執(zhí)行SQL語句: 執(zhí)行select語句:將返回一個 ResultSet 對象 格式:

11、ResultSet rs = stmt.executeQuery(“Select 語句”); 例如:ResultSet rs = stmt.executeQuery(“SELECT * FROM factory_tb “); 結(jié)果集(即ResultSet 對象 ):也就是符合查詢條件的記錄構(gòu)成的集合。,20,執(zhí)行update(更新)、insert(插入)、delete(刪除)語句: 格式: int n= stmt.executeUpdate(“update、insert、delete語句等”); 例如:stmt.executeUpdate(“DELETE FROM factory_tb WHE

12、RE factory_id =04“); 返回結(jié)果:行計數(shù)或者 0(表示不返回任何內(nèi)容),可以不保存。 請注意: stmt.executeQuery()與stmt.executeUpdate()方法的不同,21,(6)若是執(zhí)行查詢語句,需要從ResultSet讀取數(shù)據(jù): 通過返回的ResultSet對象來獲得查詢結(jié)果: ResultSet對象的指針一開始定位在第一條記錄之前,即當前行為第一行; ResultSet提供了指針下移的方法:next(),指針可以不斷下移,直到最后。除此之外,還有其它移動指針的方法; 通常,也是用rs.next()是否為false來判斷結(jié)果集是否為空? ResultS

13、et提供了一些方法來獲得當前行中的不同字段的值: getXXX(int 列序號) 或 getXXX(String 列名),22,(7)調(diào)用close()方法,依次關(guān)閉ResultSet、Statement、Connection對象。注意:關(guān)閉順序與打開順序相反。,23,預(yù)處理語句(自學(xué)),問題的提出: 當向數(shù)據(jù)庫發(fā)送一個SQL語句,比如“Select * from student”,數(shù)據(jù)庫中的SQL解釋器負責(zé)將把SQL語句生成底層的內(nèi)部命令,然后執(zhí)行該命令,完成有關(guān)的數(shù)據(jù)操作; 如果不斷地向數(shù)據(jù)庫提交SQL語句勢必增加數(shù)據(jù)庫中SQL解釋器的負擔,影響執(zhí)行的速度; 如果應(yīng)用程序能針對連接的數(shù)據(jù)庫

14、,事先就將SQL語句解釋為數(shù)據(jù)庫底層的內(nèi)部命令,然后直接讓數(shù)據(jù)庫去執(zhí)行這個命令,顯然不僅減輕了數(shù)據(jù)庫的負擔,而且也提高了訪問數(shù)據(jù)庫的速度。,24,問題的解決:對于JDBC,如果使用Connection和某個數(shù)據(jù)庫建立了連接對象conn,那么 conn就可以調(diào)用 preparedStatement(String sql)方法對SQL語句進行預(yù)編譯處理,生成該數(shù)據(jù)庫底層的內(nèi)部命令,并將該命令封裝在PreparedStatement對象中,那么該對象調(diào)用相應(yīng)的方法都可以使得該底層的內(nèi)部命令被數(shù)據(jù)庫執(zhí)行; 在創(chuàng)建PreparedStatement 對象時,SQL 語句是作為參數(shù)提供的;由于只有這些值的

15、位置是已知的,故使用? 符號來表示。運行SQL語句時,將設(shè)置實際值。,25,例如: PreparedStatement ps; ps = conn.prepareStatement(“insert into table (col1,col2) values (?, ?)”); ps.setInt(1,100); ps.setString(2,”Dennis”); ps.execute();,26,總結(jié),JDBC概念的理解 使用 Class.forName() 方法可以將驅(qū)動程序加載到 Java 解釋器中 使用 DriverManager 類的 getConnection() 方法和 Connection 對象的 createStatement() 方法可建立連接 最后,使用 executeQuery() 或 executeUpdate() 方法通過 Statement 實例構(gòu)建并執(zhí)行 SQL 語句 PreparedStatement 接口允許創(chuàng)建預(yù)編譯的 SQL 語句,并使得在后續(xù)階段可以指定語句的參數(shù) 結(jié)果集可以是可滾動的,也可以是不可滾動的,

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

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!