秋霞电影网午夜鲁丝片无码,真人h视频免费观看视频,囯产av无码片毛片一级,免费夜色私人影院在线观看,亚洲美女综合香蕉片,亚洲aⅴ天堂av在线电影猫咪,日韩三级片网址入口

JDBC數(shù)據(jù)庫(kù)連接技術(shù).ppt

上傳人:w****2 文檔編號(hào):16542549 上傳時(shí)間:2020-10-10 格式:PPT 頁(yè)數(shù):26 大?。?71.84KB
收藏 版權(quán)申訴 舉報(bào) 下載
JDBC數(shù)據(jù)庫(kù)連接技術(shù).ppt_第1頁(yè)
第1頁(yè) / 共26頁(yè)
JDBC數(shù)據(jù)庫(kù)連接技術(shù).ppt_第2頁(yè)
第2頁(yè) / 共26頁(yè)
JDBC數(shù)據(jù)庫(kù)連接技術(shù).ppt_第3頁(yè)
第3頁(yè) / 共26頁(yè)

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

9.9 積分

下載資源

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

資源描述:

《JDBC數(shù)據(jù)庫(kù)連接技術(shù).ppt》由會(huì)員分享,可在線閱讀,更多相關(guān)《JDBC數(shù)據(jù)庫(kù)連接技術(shù).ppt(26頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、JDBC數(shù)據(jù)庫(kù)連接技術(shù) 主要內(nèi)容 JDBC概述 面向程序開發(fā)人員的 JDBC API 面向底層的 JDBC Driver API JDBC Driver介紹 創(chuàng)建數(shù)據(jù)庫(kù)的連接 數(shù)據(jù)庫(kù)連接及應(yīng)用舉例 JDBC概述 JDBC出現(xiàn)以前,通過 Java訪問數(shù)據(jù)庫(kù)的唯一方法是 利用 Java I/O訪問服務(wù)器端的 CGI程序,通過 CGI程序 訪問和操作數(shù)據(jù)庫(kù),每一次訪問都會(huì)由 web服務(wù)器啟 動(dòng)一個(gè)新的 CGI進(jìn)程與數(shù)據(jù)庫(kù)建立連接,所以效率低、 速度慢且容易出錯(cuò)。 JDBC的出現(xiàn)擴(kuò)充了 java的應(yīng)用范圍,通過使用 JDBC, 應(yīng)用程序可以很方便的將 SQL語句傳送給

2、幾乎任何一 種數(shù)據(jù)庫(kù)。 簡(jiǎn)單地說, JDBC能完成: 與數(shù)據(jù)庫(kù)建立連接 向數(shù)據(jù)庫(kù)發(fā)送 SQL語句 處理數(shù)據(jù)庫(kù)返回的結(jié)果 JDBC概述 Java通過 JDBC訪問數(shù)據(jù)庫(kù)的關(guān)系: JDBC包含兩部分 API:面向應(yīng)用程序開發(fā)人員的 JDBC API和面向底層的 JDBC Driver API 面向程序開發(fā)人員的 JDBC API 被描述成為聚集抽象的接口,通過這些接口應(yīng) 用程序可以實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的各種操作。最重要 的接口包括: Java.sql.DriverManager 處理驅(qū)動(dòng)的加載并且對(duì)產(chǎn) 生新的數(shù)據(jù)庫(kù)連接提供支持 Java.sql.Connection

3、 數(shù)據(jù)庫(kù)連接對(duì)象 Java.sql.Statement SQL語句對(duì)象 PreparedStatement 執(zhí)行預(yù)編譯的 SQL語句 CallableStatement 調(diào)用數(shù)據(jù)庫(kù)內(nèi)嵌過程 Java.sql.ResultSet 查詢結(jié)果集對(duì)象 面向底層的 JDBC Driver API 數(shù)據(jù)庫(kù)廠商開發(fā)數(shù)據(jù)庫(kù)底層驅(qū)動(dòng)程序要使用的,一般 情況下程序員用不上這些類庫(kù)。 數(shù)據(jù)庫(kù)廠商會(huì)提供多種不同類型的驅(qū)動(dòng)程序連接數(shù)據(jù) 庫(kù),一般可分為 4種類型: Type1、 Type2、 Type3、 Type4 清楚了解 4種類型的驅(qū)動(dòng)程序的運(yùn)作方式,對(duì)于程序 員是很重要的,因?yàn)閷?shí)際開發(fā)

4、過程中經(jīng)常會(huì)使用各種 不同的數(shù)據(jù)庫(kù)、而且在不同的時(shí)機(jī)必須使用不同類型 的的驅(qū)動(dòng)程序來連接數(shù)據(jù)庫(kù)。 招聘題:你常用的是 JDBC驅(qū)動(dòng)的那一種?與其他 JDBC 驅(qū)動(dòng)相比較,有什么優(yōu)點(diǎn)? JDBC Driver介紹 Type1JDBC-ODBC Bridge plus ODBC Driver 必須事先創(chuàng)建數(shù)據(jù)庫(kù)的 ODBC連接,然后再利用 JDBC-ODBC Bridge(DBC橋接器 )驅(qū)動(dòng)程序,通過 ODBC連接數(shù)據(jù)庫(kù),此種方式通常用在實(shí)驗(yàn)、測(cè)試 階段,或者暫時(shí)沒有其他驅(qū)動(dòng)可用的情況下。 優(yōu)點(diǎn) :簡(jiǎn)單 缺點(diǎn) :要設(shè)置 ODBC連接;項(xiàng)目大、用戶多時(shí)維護(hù) ODBC連接很麻煩;

5、性能低、大量效率耗在了 JDBC和 ODBC之間的數(shù)據(jù)傳遞與轉(zhuǎn)換。 JDBC Driver介紹 Type2Native-API partly-Java Driver 運(yùn)作方式與 Type1很相似。訪問數(shù)據(jù)庫(kù)時(shí),利用數(shù) 據(jù)庫(kù)提供的特別的函數(shù)庫(kù)來完成 (Oracle、 DB2、 Sybase等都有提供 ), java利用本地函數(shù)的機(jī)制與 這些函數(shù)庫(kù)溝通。此種方式適用于于用戶機(jī)器上存 在這些函數(shù)庫(kù)。 優(yōu)點(diǎn) :效率高。由于 java是利用本地函數(shù)機(jī)制與數(shù) 據(jù)庫(kù)提供的函數(shù)庫(kù)溝通,而這些函數(shù)庫(kù)通常是數(shù)據(jù) 庫(kù)廠商精心優(yōu)化了的,所以效率很高! 缺點(diǎn) :用戶必須安裝數(shù)據(jù)庫(kù)的函數(shù)庫(kù) JDBC

6、Driver介紹 Type3Pure Java Driver for Database MiddleWare 這種類型的驅(qū)動(dòng)就是要解決上面兩種驅(qū)動(dòng)所存在的問題。首先這 種驅(qū)動(dòng)程序必須有一個(gè)中間層服務(wù)器 (middleware server),當(dāng)用戶 要與數(shù)據(jù)庫(kù)溝通時(shí),會(huì)利用 JDBC與中間層服務(wù)器連接,而中間層 服務(wù)器會(huì)將 JDBC的調(diào)用轉(zhuǎn)換成數(shù)據(jù)庫(kù)的協(xié)議并調(diào)用數(shù)據(jù)庫(kù),最后 將數(shù)據(jù)庫(kù)的返回值再轉(zhuǎn)換成 JDBC的格式返回給用戶。如此一來用 戶就不需要設(shè)置 ODBC數(shù)據(jù)源或者安裝數(shù)據(jù)庫(kù)連接的函數(shù)庫(kù)了。 事實(shí)上,中間層服務(wù)器還是利用 ODBC或者函數(shù)庫(kù)來與數(shù)據(jù)庫(kù)進(jìn) 行溝通的。 優(yōu)點(diǎn):用戶端

7、不用做任何設(shè)置;直接連接的是中間層服務(wù)器,所 以驅(qū)動(dòng)程序 SIZE較??;非常適用于 Applet中要連接數(shù)據(jù)庫(kù)的應(yīng)用。 缺點(diǎn):要花錢買中間層服務(wù)器,且需要考慮它的性能及穩(wěn)定性 JDBC Driver介紹 Type4Direct-to-Database Pure Java Driver 算是真正的 JDBC驅(qū)動(dòng)程序,因?yàn)檫@種驅(qū)動(dòng)程序完 全由 Java完成,包括與數(shù)據(jù)庫(kù)打交道的各種網(wǎng)絡(luò)、 溝通協(xié)議,幾乎所有的數(shù)據(jù)庫(kù)廠商都提供了這種類 型的驅(qū)動(dòng)程序,甚至有公司在專門制作這種驅(qū)動(dòng)程 序。 優(yōu)點(diǎn):性能好,不必事先安裝任何函數(shù)庫(kù)或作任何 設(shè)置,是選擇驅(qū)動(dòng)程序時(shí)非常好的選擇。 缺點(diǎn):不同

8、的數(shù)據(jù)庫(kù)需要不同的驅(qū)動(dòng)。 JDBC Driver介紹 4種類型的驅(qū)動(dòng)比較表 T ype1 T ype2 T ype3 T ype4 客戶端設(shè)置 設(shè)置 O DB C 數(shù) 據(jù)源 設(shè)置數(shù)據(jù)庫(kù)連 接的函數(shù)庫(kù) 無 無 服務(wù)器端設(shè)置 無 無 中間層服務(wù)器 無 性能 較差 優(yōu) 較差 優(yōu) 100% Java ? 否 否 是 是 使用時(shí)機(jī) 測(cè)試 數(shù)據(jù)庫(kù)連接的 函數(shù)庫(kù)已經(jīng)安 裝 Applet Java Applic at ion 及大多數(shù)情形 總結(jié): 基本上 Type1與 Type2屬于同一種類型,而 Type3與 Type4則都是 數(shù)據(jù) pure Java的 JDBC驅(qū)動(dòng)程序

9、 一般情況下都使用 Type4, Type1用于測(cè)試或暫時(shí)找不到其他驅(qū)動(dòng) 的情況下 JDBC Driver介紹 思考:怎樣知道自己現(xiàn)在到底用的是那種類型 的驅(qū)動(dòng)呢? 如果須設(shè)置用戶端,則為 Type1或 Type2;反之若 不需考慮用戶端,則為 Type3或者 Type4。 在 Type1與 Type2中,若需設(shè)置的是 ODBC數(shù)據(jù)源, 則為 Type1,否則為 Type2 在 Type3與 Type4中,若存在中間層服務(wù)器,則為 Type3,否則為 Type4 創(chuàng)建數(shù)據(jù)庫(kù)的連接 環(huán)境設(shè)置步驟: 找到 JDBC驅(qū)動(dòng)程序,通常以一個(gè)或者多個(gè) Jar包的 形式提供 判

10、斷驅(qū)動(dòng)程序的 Type,根據(jù) Type作一些使用前的 額外設(shè)置,如: Type1: 安裝 ODBC驅(qū)動(dòng)程序、設(shè)置 ODBC數(shù)據(jù)源 Type2: 安裝 DB Client的函數(shù)庫(kù)、設(shè)置數(shù)據(jù)庫(kù)的連接 Type3: 安裝設(shè)置 Middle Ware服務(wù)器 Type4: 無 將驅(qū)動(dòng)程序 jar包設(shè)置到 classpath中 創(chuàng)建數(shù)據(jù)庫(kù)的連接 一個(gè)基本的 JDBC應(yīng)用的開發(fā)都包含以下步驟: 引入相應(yīng)的包 加載 JDBC驅(qū)動(dòng)程序 創(chuàng)建連接對(duì)象 創(chuàng)建 SQL語句對(duì)象 執(zhí)行數(shù)據(jù)庫(kù)操作 如果有查詢結(jié)果集返回,處理結(jié)果集 釋放相關(guān)資源 創(chuàng)建數(shù)據(jù)庫(kù)的連接

11、引入相應(yīng)的包 import java.sql.*; import javax.sql.*;(高級(jí)應(yīng)用 ) 加載 JDBC驅(qū)動(dòng)程序 Class.forName(“JDBC驅(qū)動(dòng)類名 ); 每個(gè) Driver類在得到加載的時(shí)候,一般都會(huì)自動(dòng)創(chuàng)建一個(gè)它本 身的實(shí)例,并通過 DriverManager類的 registerDriver方法來 自動(dòng)注冊(cè)該實(shí)例;程序員也可以顯示的調(diào)用 newInstance()方 法強(qiáng)制實(shí)施這一過程,即: Class.forName(“JDBC驅(qū)動(dòng)類名 ”).newInstance(); 對(duì)于 ”JDBC驅(qū)動(dòng)類名 ”, Type4各有不同, Type1均 為 ”su

12、n.jdbc.odbc.JdbcOdbcDriver” 創(chuàng)建數(shù)據(jù)庫(kù)的連接 創(chuàng)建連接對(duì)象 Connection con = DriverManager.getConnection(“數(shù)據(jù)庫(kù) url”, “userName”, “password”); DriverManager類會(huì)嘗試找到與傳遞進(jìn)來的 url字符串所代表的 數(shù)據(jù)庫(kù)進(jìn)行連接的驅(qū)動(dòng)程序 (DriverManager類存有已注冊(cè)的 Driver類的清單 ),然后創(chuàng)建一個(gè)連接對(duì)象并返回。 關(guān)于 ”數(shù)據(jù)庫(kù) url”JDBC URL標(biāo)準(zhǔn)部分由三部分組成, jdbc:: jdbc固定 標(biāo)識(shí)驅(qū)動(dòng)名或數(shù)據(jù)庫(kù)連接機(jī)制,如 mysql

13、 一種標(biāo)識(shí)數(shù)據(jù)庫(kù)的方法,如 //localhost/mydb MySQL中 mydb數(shù)據(jù)庫(kù)的 url完整寫法: jdbc:mysql://localhost/mydb 創(chuàng)建數(shù)據(jù)庫(kù)的連接 創(chuàng)建 SQL語句對(duì)象 Statement stmt = con.createStatement(); SQL語句對(duì)象用于向數(shù)據(jù)庫(kù)傳送 SQL語句,另外還有 PreparedStatement和 CallableStatement這兩種語句對(duì)象。 用 SQL語句對(duì)象執(zhí)行數(shù)據(jù)庫(kù)操作 查詢: ResultSet rs = statement.executeQuery(String sql); 更新

14、 (刪除 ): int updatedrowcount = statement.executeUpdate(String sql); 創(chuàng)建數(shù)據(jù)庫(kù)的連接 如果有查詢結(jié)果集返回,處理結(jié)果集 調(diào)用 SQL語句對(duì)象的方法對(duì)數(shù)據(jù)庫(kù)進(jìn)行查詢操作后,將返回一個(gè) ResultSet對(duì)象,此對(duì)象是由統(tǒng)一形式的列組織的數(shù)據(jù)行組成。 ResultSet對(duì)象一次只能看到一個(gè)數(shù)據(jù)行,使用 next()方法走到下一 數(shù)據(jù)行。獲得一行數(shù)據(jù)后, ResultSet對(duì)象可以使用 getXxx() 方 法獲得字段值,將位置索引 (第一列為 1, 第二列為 2等 )或字段名傳 遞給 getXxx(..)方法的參數(shù)即可

15、ResultSet類的若干方法 (查閱 JDK文檔 ) Boolean next() String getString(int columnIndex) Int getInt(int columnIndex) float getFloat(int columnIndex) 釋放相關(guān)資源 rs.close(); stmt.close(); con.close(); ResultSet對(duì)象會(huì)在生成它的 SQL語句對(duì)象被關(guān)閉或重新執(zhí)行時(shí)自動(dòng)關(guān)閉 使用 Type4驅(qū)動(dòng)連接數(shù)據(jù)庫(kù)舉例 SQL Server2000 驅(qū)動(dòng)程序 jar文件: msbase.jar, ms

16、sqlserver.jar, msutil.jar 驅(qū)動(dòng)類名: com.microsoft.jdbc.sqlserver.SQLServerDriver 數(shù)據(jù)庫(kù) URL, 如 yinhe數(shù)據(jù)庫(kù): jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=yinh e 1433是 SQL Server數(shù)據(jù)庫(kù)連接服務(wù)的默認(rèn)端口,可用 telnet 先測(cè)試 舉例:檢索出一個(gè)數(shù)據(jù)表里的所有內(nèi)容,并打印結(jié)果到命令 提示符終端。 使用 Type4驅(qū)動(dòng)連接數(shù)據(jù)庫(kù)舉例 MySQL MySQL沒有提供數(shù)據(jù)庫(kù)操作的 GUI,數(shù)據(jù)庫(kù)、表

17、的創(chuàng)建需 要使用 DDL 驅(qū)動(dòng)程序 jar文件: mm.mysql-2.0.4-bin.jar 驅(qū)動(dòng)類名: org.gjt.mm.mysql.Driver 數(shù)據(jù)庫(kù) URL, 如 yinhe數(shù)據(jù)庫(kù): jdbc:mysql://localhost/yinhe 復(fù)習(xí)與實(shí)踐 使用 Type4驅(qū)動(dòng)連接 MySQL數(shù)據(jù)庫(kù) 安裝 MySQL數(shù)據(jù)庫(kù) 使用 DDL創(chuàng)建數(shù)據(jù)庫(kù) (如 yinhe)、數(shù)據(jù)表 (employees) 使用 Java連接數(shù)據(jù)庫(kù),并檢索出一個(gè)數(shù)據(jù)表中的全 部?jī)?nèi)容打印到屏幕終端 復(fù)習(xí)內(nèi)容: JDBC數(shù)據(jù)庫(kù)應(yīng)用的一般流程, Type4驅(qū)動(dòng)的使用 使用 T

18、ype4驅(qū)動(dòng)連接其它常見數(shù)據(jù)庫(kù) Oracle Class.forName(“oracle.jdbc.driver.OracleDriver”); Connection con = DriverManager.getConnection(“jdbc:oracle:thin:localhost: 1521:databaseName”, “user”, “password”); Postgre SQL Class.forName(“org.postgresql.Driver”); Connection con = DriverManager.getConnection(“jdbc:postgr

19、esql://localhost/d atabaseName”, “user”, “password”); 使用 Type1驅(qū)動(dòng)連接數(shù)據(jù)庫(kù)舉例 要點(diǎn): 首先要設(shè)置并測(cè)試 ODBC數(shù)據(jù)源 Type1驅(qū)動(dòng)名均為: sun.jdbc.odbc.JdbcOdbcDriver 此驅(qū)動(dòng)位于 rt.jar包中,所以 classpath不需要專門設(shè)置 數(shù)據(jù)庫(kù) URL: jdbc:odbc:數(shù)據(jù)源名字 如 yinhe數(shù)據(jù)庫(kù),對(duì)應(yīng)的 ODBC數(shù)據(jù)源是 milkway,則為: jdbc:odbc:milkway 舉例: 使用 Type1驅(qū)動(dòng)連接 SQL Server20

20、00數(shù)據(jù)庫(kù) 復(fù)習(xí)與實(shí)踐 使用 Type1驅(qū)動(dòng)連接 Access數(shù)據(jù)庫(kù) Notes: 與使用 Type1驅(qū)動(dòng)連接 SQL Server2000的步驟完全 一樣 復(fù)習(xí)內(nèi)容 JDBC數(shù)據(jù)庫(kù)應(yīng)用的一般流程, Type1驅(qū)動(dòng)的使用 補(bǔ)充小技巧 不用手動(dòng)注冊(cè) ODBC數(shù)據(jù)源直接連接 Access數(shù)據(jù)庫(kù): 只需將數(shù)據(jù)庫(kù)得連接 url寫成 “jdbc:odbc:Driver=Microsoft Access Driver (*.mdb);DBQ=c:test.mdb“的形式即可,對(duì) 于其他的小型數(shù)據(jù)庫(kù)如 foxpro,甚至 excel也可以。 以數(shù)據(jù)庫(kù)的方式查 詢 Exce

21、l表格 方法,通過 jdbc-odbc橋接器 (即 Type1驅(qū)動(dòng) ) 步驟: (1). 建立 ODBC數(shù)據(jù)源,指向要連接的 Excel文件 (2). Excel文件中是沒有像數(shù)據(jù)庫(kù)中那樣的數(shù)據(jù)表的, 需要手工指定,數(shù)據(jù)表的概念在 Excel文件中對(duì)應(yīng) 就是自定義名稱:在 Excel表格中選中一塊要操作 的區(qū)域 -- “插入 ”--“名稱 ”--“定義 ”, 取個(gè)名字,這 個(gè)名字就是在程序中要操作的數(shù)據(jù)表名。 (3). 以后的步驟完全同其他情況下 Type1驅(qū)動(dòng)的使 用。 作業(yè): 在自己機(jī)器上安裝 SQL Server2000數(shù)據(jù)庫(kù) 編寫一個(gè)類用于連接數(shù)據(jù)庫(kù),其中數(shù)據(jù)庫(kù) URL,用戶名和密碼可以通過構(gòu)造函數(shù)傳遞 使用上面的類連接數(shù)據(jù)庫(kù),并用 Statement執(zhí) 行一個(gè)查詢語句,打印出結(jié)果

展開閱讀全文
溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(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ì)自己和他人造成任何形式的傷害或損失。

相關(guān)資源

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

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

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


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