java語言程序設(shè)計java數(shù)據(jù)庫編程_第1頁
java語言程序設(shè)計java數(shù)據(jù)庫編程_第2頁
java語言程序設(shè)計java數(shù)據(jù)庫編程_第3頁
java語言程序設(shè)計java數(shù)據(jù)庫編程_第4頁
java語言程序設(shè)計java數(shù)據(jù)庫編程_第5頁
已閱讀5頁,還剩57頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、Java數(shù)據(jù)庫編程Linbo He數(shù)據(jù)庫技術(shù)數(shù)據(jù)庫是一門研究數(shù)據(jù)管理的技術(shù),它開始于本世紀60年代,經(jīng)過多年的發(fā)展,已形成理論體系,成為計算機軟件的一個重要分支。 數(shù)據(jù)庫是信息管理的基礎(chǔ),任何計算機應(yīng)用都需要處理大量數(shù)據(jù),幾乎都少不了數(shù)據(jù)庫的需求。隨著網(wǎng)絡(luò)的應(yīng)用,遠程異地的網(wǎng)絡(luò)數(shù)據(jù)庫使用也變得越來越重要。為什么要使用數(shù)據(jù)庫?盡管文件系統(tǒng)可以解決不少問題,有些問題是文件系統(tǒng)所無法解決的,如果給文件系統(tǒng)加上這些特性,那么文件系統(tǒng)也就成為了一個數(shù)據(jù)庫。 數(shù)據(jù)的冗余與數(shù)據(jù)不一致:重復(fù)數(shù)據(jù)多,而且對于分布式, 有可能出現(xiàn)數(shù)據(jù)無法同步的問題。數(shù)據(jù)訪問困難,數(shù)據(jù)孤立:因為數(shù)據(jù)存儲沒有采取同樣的格式,使得使用

2、統(tǒng)一的接口訪問數(shù)據(jù)變得不可能。完整性問題:數(shù)據(jù)的正確性和相容性。原子性問題:就是事務(wù)處理,如何保證一個操作的完整性。并發(fā)訪問:這也是事務(wù)處理的一部分,數(shù)據(jù)庫需要應(yīng)對同時異地對同一個數(shù)據(jù)操作的可能。安全性問題:主要是數(shù)據(jù)庫訪問權(quán)限問題。關(guān)系型數(shù)據(jù)庫的基本概念數(shù)據(jù)庫(date base):按特定方式存儲在存儲媒體中可共享的相關(guān)數(shù)據(jù)的集合??梢岳斫鉃閿?shù)據(jù)的倉庫。其組織方式可支持對數(shù)據(jù)的有效存取。現(xiàn)在的數(shù)據(jù)庫往往由多個表(table)和表之間的關(guān)聯(lián)關(guān)系組成的數(shù)據(jù)的集合,表是一個由若干行、若干列組成的二維的關(guān)系結(jié)構(gòu)。其存在形式是一個計算機文件: 如: ABC.DBF,客戶.MDB, Total.DBC,

3、我們稱之為數(shù)據(jù)庫文件或庫文件。 實體用表來表示,實體之間的關(guān)系也用表來表示。 表的列稱為字段。數(shù)據(jù)庫的概念分層物理層:定義數(shù)據(jù)的存儲格式。能夠涉及這一層的人是數(shù)據(jù)庫軟件開發(fā)者。邏輯層:定義數(shù)據(jù)以及數(shù)據(jù)之間的關(guān)系。能夠涉及這一層的人是數(shù)據(jù)庫的設(shè)計者。視圖層:定義最終展現(xiàn)在客戶面前的數(shù)據(jù)的格式。涉及這一層的是數(shù)據(jù)庫客戶端的開發(fā)者, 以及最終的用戶。這三層從上到下層層透明。用戶不關(guān)心數(shù)據(jù)庫結(jié)構(gòu),數(shù)據(jù)庫設(shè)計開發(fā)者不關(guān)心存儲結(jié)構(gòu)。數(shù)據(jù)模型什么是數(shù)據(jù)模型? 數(shù)據(jù)模型是客觀事物及其聯(lián)系的數(shù)據(jù)描述,數(shù)據(jù)模型應(yīng)具有數(shù)據(jù)的描述和數(shù)據(jù)聯(lián)系兩方面功能。數(shù)據(jù)的描述就是指出: 模型中包含那些記錄類型,并對記錄類型進行命名

4、; 指明各個記錄類型由那些數(shù)據(jù)構(gòu)成,并對數(shù)據(jù)項進 行命名,每個數(shù)據(jù)項均需指明其數(shù)據(jù)類型和取值范 圍。數(shù)據(jù)間聯(lián)系的描述就是指明: 各個不同記錄間所存在的聯(lián)系和聯(lián)系方式。實體模型 什么是實體模型呢? 實體聯(lián)系模型又稱信息模型,是客觀事物及其自然聯(lián)系在人腦中所形成的概念。 實體模型和數(shù)據(jù)模型的關(guān)系是什么? 數(shù)據(jù)模型本質(zhì)上是“信息模型”的數(shù)據(jù)化表示。從實體模型到數(shù)據(jù)模型要經(jīng)歷三個領(lǐng)域的演變過程: 現(xiàn)實世界信息世界數(shù)據(jù)世界實體與屬性這是信息世界中廣泛使用的兩個術(shù)語實體:現(xiàn)實世界任何可相互區(qū)別的事物,不論是實際存在的東西,還是概念性的東西,或是事物與事物之間的聯(lián)系,一律統(tǒng)稱為實體。屬性:實體所具有的性質(zhì),

5、統(tǒng)稱為屬性。實體是靠屬性來描述的。實體集同一類型的實體集合稱為實體集。域?qū)嶓w中的每個屬性,都有一個取值范圍,這叫作屬性的“域”。域可以是整數(shù)、實數(shù)、字符串等鍵(key)又稱為關(guān)鍵字,它是指在實體屬性中,可用于區(qū)別實體集中不同個體的那個屬性或幾個屬性的組合。實體間的聯(lián)系方式實體之間的聯(lián)系實際上反映了實體之間的語義 關(guān)系。聯(lián)系也是實體,因此它也可以有屬性。 實體間聯(lián)系情況比較復(fù)雜,就其聯(lián)系方式來說, 我們可把它分為以下三種:1) :一對一聯(lián)系(簡記為1:1)2) :一對多聯(lián)系(簡記為1:n)3) :多對多聯(lián)系(簡記為m:n)一對一聯(lián)系 若兩個同型實體集中,一方的一個實體唯一與另一方的一個實體相對應(yīng)

6、,則稱為1:1聯(lián)系。如下圖所示的婚姻關(guān)系一對多聯(lián)系若兩個不同型的實體集中,一方一個實體對應(yīng)另一方多個實體;反之另一方一個實體最多只與本方一個實體相對應(yīng), 稱1:n聯(lián)系。如下圖所示:多對多關(guān)系 若兩不同型實體集中,任何方一個實體都與對方一個或多個實體相對應(yīng),稱m :n聯(lián)系,如下圖學(xué)生與課程的關(guān)系 “多對多模式”需要在A表和B表之間有一個關(guān)聯(lián)表,這個關(guān)聯(lián)表也是“多對多模式”的核心所在。根據(jù)關(guān)聯(lián)表是否有獨立的業(yè)務(wù)處理需求,可將其劃分為兩種細分情況。 具備獨立的業(yè)務(wù)處理需求,是一個業(yè)務(wù)實體對象,因此它具備一些特有的屬性。 本身不具備獨立的業(yè)務(wù)處理需求,所以也就沒有什么特殊的屬性。E-R圖的畫法 E-R

7、圖中包括:實體、屬性和聯(lián)系三種基本圖素。 習(xí)慣上實體用方框表示,實體的屬性用橢圓框表示,聯(lián)系用菱形框表示。E-R的設(shè)計原則針對每一用戶作出該用戶信息的局部E-R圖, 確定該用戶視圖的實體、屬性和聯(lián)系。 能作為屬性的就不要作為實體,這樣有利于簡化E-R圖。綜合局部E-R圖,產(chǎn)生出總體E-R圖。 在綜合的過程中,同名實體只能出現(xiàn)一次,還要去掉不必要的聯(lián)系,以便消除冗余。最后說明一點:一個系統(tǒng)的E-R圖不是唯一的,強調(diào)不同的側(cè)面作出的E-R圖可能有很大的不同。例設(shè)某企業(yè)信息系統(tǒng)有下列用戶:人事科處理職工;供應(yīng)科處理采購業(yè)務(wù);總務(wù)科處理倉庫業(yè)務(wù);生產(chǎn)科處理產(chǎn)品業(yè)務(wù)。試根據(jù)上述要求設(shè)計出能反映所有用戶信

8、息視圖的總體E- R圖。人事科視圖供應(yīng)科視圖生產(chǎn)科視圖總務(wù)科視圖總體E-R圖綜合后的E-R圖中去掉了一些聯(lián)系,又增添了一些新聯(lián)系,這是允許的導(dǎo)出關(guān)系模型E-R圖僅是現(xiàn)實世界的純粹反映,與數(shù)據(jù)庫具體實現(xiàn)毫無關(guān)系,但它是構(gòu)造數(shù)據(jù)模型的依據(jù)。下面給出從E-R圖出發(fā)導(dǎo)出關(guān)系模型的原則。原則一:對于E-R圖中每個實體,都應(yīng)轉(zhuǎn)換為一個關(guān)系,該關(guān)系應(yīng)包括對應(yīng)實體的全部屬性,并應(yīng)根據(jù)關(guān)系所表達的語義確定哪個屬性作為“主鍵”。鍵在關(guān)系模型中是實現(xiàn)聯(lián)系的主要手段原則二:對于E-R圖中的聯(lián)系,情況比較復(fù)雜, 要根據(jù)實體聯(lián)系方式的不同,采取不同的手段 加以實現(xiàn)。數(shù)據(jù)庫語言 數(shù)據(jù)庫語言通常由兩個部分組成: (1) DD

9、L數(shù)據(jù)定義語言。(2)DML數(shù)據(jù)操縱語言。最常用的數(shù)據(jù)庫語言就是SQL。數(shù)據(jù)庫設(shè)計要點主鍵與外鍵一般而言,一個實體不能既無主鍵又無外鍵。主鍵與外鍵的設(shè)計,在全局數(shù)據(jù)庫的設(shè)計中, 占有重要地位。主鍵是實體的高度抽象,主鍵與外鍵的配對,表示實體之間的連接。鍵可以是一無物理意義的數(shù)字串, 由程序自動加1來實現(xiàn)。也可以是有物理意義的字段名或字段名的組合。不過前者比后者好。當(dāng)PK是字段名的組合時,建議字段的個數(shù)不要太多,多了不但索引占用空間大,而且速度也慢。通俗地理解三個范式第一范式:1NF是對屬性的原子性約束,要求屬性具有原子性,不可再分解;第二范式:2NF是對記錄的惟一性約束,要求記錄有惟一標(biāo)識,即

10、實體的惟一性;第三范式:3NF是對字段冗余性的約束,即任何字段不能由其他字段派生出來,它要求字段沒有冗余;沒有冗余的數(shù)據(jù)庫設(shè)計可以做到。但是,沒有冗余的 數(shù)據(jù)庫未必是最好的數(shù)據(jù)庫,有時為了提高運行效率,就必須降低范式標(biāo)準,適當(dāng)保留冗余數(shù)據(jù)。三少原則一個數(shù)據(jù)庫中表的個數(shù)越少越好。只有表的個數(shù)少,才能說明系統(tǒng)的E-R圖少而精,去掉了重復(fù)的多余的實體,形成了對客觀世界的高度抽象。一個表中組合主鍵的字段個數(shù)越少越好。因為主鍵的作用,一是建主鍵索引,二是做為子表的外鍵, 所以組合主鍵的字段個數(shù)少了,不僅節(jié)省了運行時 間,而且節(jié)省了索引存儲空間;一個表中的字段個數(shù)越少越好。只有字段的個數(shù)少了,才能說明在系

11、統(tǒng)中不存在數(shù)據(jù)重復(fù),且很少有數(shù)據(jù)冗余Java JDBCJDBC(Java Data Base Connectivity,java數(shù)據(jù)庫連接)是一種用于執(zhí)行SQL語句的Java API,可以為多種關(guān)系數(shù)據(jù)庫提供統(tǒng)一訪問,它由一組用Java語言編寫的類和接口組成。 JDBC提供了一種基準,據(jù)此可以構(gòu)建更高級的工具和接口,使數(shù)據(jù)庫開發(fā)人員能夠編寫數(shù)據(jù)庫應(yīng)用程序,同時,JDBC也是個商標(biāo)名。The typeof JDBCType1:JDBC-ODBC bridge要求客戶端必須安裝ODBC驅(qū)動執(zhí)行效率比較低,對于那些大數(shù)據(jù)量存取的應(yīng)用是不適合的適用于快速的原型系統(tǒng),沒有提供JDBC 驅(qū) 動 的 數(shù) 據(jù)

12、 庫 如 Access(Desktop Database)Type2:Java to native API這種驅(qū)動比起JDBC-ODBC橋執(zhí)行效率略有提高。但是,它仍然需要在客戶端加載數(shù)據(jù)庫廠商提供的代碼庫.這樣就不適合基于internet的應(yīng)用Type3:Java to Net適合那種需要同時連接多個不同種類的數(shù)據(jù)庫并且對并發(fā)連接要求高的應(yīng)用Type4:Java to Native Database最高的性能,通過自己的本地協(xié)議直接與數(shù)據(jù)庫引擎通信JDBC與數(shù)據(jù)庫驅(qū)動程序JDBC 為多種關(guān)系數(shù)據(jù)庫提供了統(tǒng)一訪問方式, 作為特定廠商數(shù)據(jù)庫訪問API的一種高級抽象, 它主要包含一些通用的接口類。

13、真正的數(shù)據(jù)庫訪問操作實現(xiàn)是由各自數(shù)據(jù)庫廠商提供的。通常把廠商提供的特定于數(shù)據(jù)庫的訪問API稱為 數(shù)據(jù)庫JDBC驅(qū)動程序。JDBC通過提供一個抽象的數(shù)據(jù)庫接口,使得程序開發(fā)人員在編程時可以不用綁定在特定數(shù)據(jù)庫廠商的API上,大大增加了應(yīng)用程序的可移植性。在實際運行過程中程序代碼通過JDBC訪問數(shù)據(jù)庫時,仍舊需要調(diào)用特定于數(shù)據(jù)庫的訪問API。應(yīng)用層JDBC 接口層JDBC 驅(qū)動層數(shù)據(jù)庫JDBC訪問數(shù)據(jù)庫層次結(jié)構(gòu)數(shù)據(jù)庫廠商數(shù)據(jù)庫JDBC 驅(qū)動程序JDBC APISunJ2EE 應(yīng)用程序員開發(fā)為了讓JDBC與平臺無關(guān),JDBC提供所謂的“驅(qū)動程序管理器(driver manager)”,它會動態(tài)維護所

14、有“數(shù)據(jù)庫查詢”所需要的驅(qū)動程序?qū)ο笫褂肅lass.forName()進行裝載,向驅(qū)動管理器注冊。創(chuàng)建數(shù)據(jù)庫連接,分為以下幾步: 首先注冊數(shù)據(jù)庫驅(qū)動程序然后根據(jù)具體的JDBC URL地址,調(diào)用DriverManager對象的getConnection()來獲取一個代表數(shù)據(jù)庫連接的java.sql.connection 對象。JDBC URL 的格式如下:jdbc:子協(xié)議:數(shù)據(jù)庫 MySQL數(shù)據(jù)庫:jdbc:mysql:/機器名/數(shù)據(jù)庫名 Oracle數(shù)據(jù)庫:jdbc:oracle:thin機器名:端口名:數(shù)據(jù)庫名 jdbc:sqlserver:/localhost:1433;data base

15、Name=Graduate給定具體的JDBC URL,獲取數(shù)據(jù)庫連接的方法是在DriverManager對象上調(diào)用getConnection()。這種方法有兩種形式:DriverManager.getConnection(url) DriverManager.getConnection(url,user, password)其中第二種方式需要輸入用戶名和行身份認證。信息進連接數(shù)據(jù)庫示例JDBC對數(shù)據(jù)庫執(zhí)行SQL java.sql.Statement 對象代表一條發(fā)送到數(shù)據(jù)庫執(zhí)行的SQL語句。 有三種 Statement 對象: Statement 對象用于執(zhí)行不帶參數(shù)的簡單SQL 語句; Pr

16、eparedStatement 對象用于執(zhí)行帶或不帶參數(shù)的預(yù)編譯 SQL 語句 CallableStatement 對象用于執(zhí)行對數(shù)據(jù)庫存儲過程的調(diào)用。StatementStatement對象提供了三種執(zhí)行SQL語句的方法: executeQuery():(用于產(chǎn)生單個結(jié)果集的sql, 如select語句) executeUpdate:(用于執(zhí)行insert、delete、update、create table、drop table等) execute():用于執(zhí)行返回多個結(jié)果集、多個更新計數(shù)或二者組合的語句,多數(shù)程序員不會需要該高級功能。PreparedStatementPreparedSt

17、atement 實例包含已編譯的 SQL語句,這也是將其命名冠以“Prepared”的原因。包含于 PreparedStatement 對象中的SQL 語句可具有一個或多個 IN 參數(shù)。IN 參數(shù)的值在 SQL 語句創(chuàng)建時未被指定。相反的,該語句為每個 IN 參數(shù)保留一個問號(“?”) 作為占位符。每個問號的值必須在該語句執(zhí)行之前通過適當(dāng)?shù)?setXXX() 方法來提供。由于 PreparedStatement 對象已預(yù)編譯過,所以其執(zhí)行速度要快于 Statement 對象。因此多次執(zhí)行的 SQL 語句經(jīng)常創(chuàng)建為PreparedStatement 對象,以提高效率。PreparedStatem

18、ent 接口也有自己的executeQuery、executeUpdate 和execute 方法。Statement 對象本身不包含SQL 語句,因而必須給 Statement.execute 方法提供 SQL 語句作為參數(shù)。PreparedStatement 對象并不將 SQL 語句作為參數(shù)提供給這些方法,因為它們已經(jīng)包含預(yù)編譯 SQL 語句。CallableStatement調(diào)用存儲過程將常用的或很復(fù)雜的工作,預(yù)先用SQL語句寫好并用一個指定的名稱存儲起來, 那么以后要叫數(shù)據(jù)庫提供與已定義好的存儲過程的功能相同的服務(wù)時,只需調(diào)用execute,即可自動完成命令。存儲過程的優(yōu)點存儲過程只在

19、創(chuàng)造時進行編譯,以后每次執(zhí)行存儲過程都不需再重新編譯,而一般SQL語句每執(zhí)行一次就編譯一次,所以使用存儲過程可提高數(shù)據(jù)庫執(zhí)行速度。當(dāng)對數(shù)據(jù)庫進行復(fù)雜操作時(如對多個表進行Update,Insert,Query,Delete時),可將此復(fù)雜操作用存儲過程封裝起來與數(shù)據(jù)庫提供的事務(wù)處理結(jié)合一起使用。存儲過程可以重復(fù)使用,可減少數(shù)據(jù)庫開發(fā)人員的工作量安全性高,可設(shè)定只有本地用戶才具有對指定存儲過程的使用權(quán)Statement接口的比較StatementPreparedStatementCallableStatement代碼創(chuàng)建客戶端客戶端服務(wù)器端代碼存儲客戶端服務(wù)器端服務(wù)器端語言Java,SQLJav

20、a,SQL服務(wù)器端特定數(shù)據(jù)庫語言可配置性靈活較差差可移植性高高(支持)差效率低第一次低,以后高高關(guān)閉JDBC資源首先關(guān)閉記錄集;其次關(guān)閉Statement;最后關(guān)閉連接對象。例:if(rs !=null)tryrs.close();catch(SQLException e.printStackTrace(); if(stm!=null)trystm.close();e)catch(SQLException e)e.printStackTrace();if(con!=null)trycon.close();catch(SQLException e)e.printStackTrace();元數(shù)據(jù)與

21、異常 元數(shù)據(jù) 異常元數(shù)據(jù)元數(shù)據(jù):描述數(shù)據(jù)的數(shù)據(jù)。開發(fā)IDE工具、中間件服務(wù)器開發(fā)人員需要重點掌握。對于普通的應(yīng)用系統(tǒng)開發(fā)者,只需了解即可。DatabaseMetaData接口,用于提供關(guān)于數(shù)據(jù)庫的整體綜合信 息。DatabaseMetaData dmd=conn.getMetaData();DatabaseMetaData:整個數(shù)據(jù)庫的元數(shù)據(jù)數(shù)據(jù)庫版本、名稱數(shù)據(jù)庫驅(qū)動程序的版本、名稱數(shù)據(jù)庫支持的操作(事務(wù)隔離級別、結(jié)果集支持的類型等)ResultSetMetaData ,用于描述結(jié)果集本身的信息, 表結(jié)構(gòu)(包括有哪些字段,字段的類型等信息).即可用于獲取關(guān) 于 ResultSet對象中列的類型

22、和屬性信息的對象。ResultSetMetaData rsmd=rs.getMetaData();異常SQLException:致命性的錯誤,如,表不存在等,主鍵重復(fù)等。int getErrorCode()MySQL:1062 DB2:803Oracle:1/Vendor specific依賴于具體的數(shù)據(jù)庫廠商,返回數(shù)據(jù)庫廠商特定的錯誤代碼。SQLException getNextException()檢索到此 SQLException 對象的異常鏈。 如果不存在,則返回 null。String getSQLState()依賴于規(guī)范 ,返回SQL99或者XOPEN中規(guī)定的錯誤代碼。出現(xiàn)SQLE

23、xception的情況: 網(wǎng)絡(luò)連接失敗 SQL語句存在語法錯誤 不支持的函數(shù)調(diào)用 引用不存在的字段 插入主鍵相同的行 其他SQLWarning(非致命性的錯誤,提供關(guān)于數(shù)據(jù)庫訪問警告信息的異常,很多時候無需程序員處理,是SQLException類的子類)拋出SQLWarning之后數(shù)據(jù)庫操作是否成功,與特定的數(shù)據(jù)庫Driver相關(guān)事務(wù)處理What is TransactionJDBC API中使用事務(wù)處理步驟并發(fā)控制What is Transaction事務(wù)處理:一系列的動作作為一個不可分解的操作。ACID 屬性:Atomic Consistent Isolated Durable 1.原子性

24、 ALL-NOTHING事務(wù)中包含的程序作為數(shù)據(jù)庫的邏輯工作單位,它所做的對數(shù)據(jù)修改操作要么全部執(zhí)行,要么完全不執(zhí)行。2. 一致性 事務(wù)的一致性指的是在一個事務(wù)執(zhí)行之前和執(zhí)行之后數(shù)據(jù)庫都必須處于一致性狀態(tài)。這種特性稱為事務(wù)的一致性。假如數(shù)據(jù)庫的狀態(tài)滿足所有的完整性約束,就說該數(shù)據(jù)庫是一致的。3. 分離性 分離性指并發(fā)的事務(wù)是相互隔離的。即一個事務(wù)內(nèi)部的操作及正在操作的數(shù)據(jù)必須起來,不被其它企圖進行修改的事務(wù)看到。4.持久性持久性意味著當(dāng)系統(tǒng)或介質(zhì)發(fā)生故障時,確保已提交事務(wù)的更新不能丟失即一旦一個事務(wù)提交,DBMS保證它對數(shù)據(jù)庫中數(shù)據(jù)的改變應(yīng)該是永久性的,耐得住任何系統(tǒng)故障。持久性通過數(shù)據(jù)庫備份

25、和恢復(fù)來保證。JDBC API中使用事務(wù)處理步驟默認是自動提交:每發(fā)送一條SQL語句都是自動提交的!1) 用false作為參數(shù)調(diào)用Connection setAutoCommit方法;2) 執(zhí)行一或多個關(guān)于數(shù)據(jù)庫的操作;3) 調(diào)用commit方法完成改變;4) 如果發(fā)生錯誤,恢復(fù)上次提交后的改變,調(diào)用rollback方法;5) 用true作為參數(shù)調(diào)用setAutoCommit方法; 恢復(fù)自動提交事務(wù)開關(guān)。Connection Pool存放Connection對象的容器; 減少連接數(shù)據(jù)庫的開銷;程序請求連接時,在Connection Pool中取連接;連接使用完后,放回Connection Pool,不釋放; Connection Pool對連接進行管理:計數(shù)、監(jiān)控連接狀態(tài);JNDIJNDI(Java Naming and Directory Interface), 能夠提供注冊和訪問遠程服務(wù)的API. 相應(yīng)的API在javax.naming包中.JNDI API為應(yīng)用程序提供了一種統(tǒng)一的訪問遠程服務(wù)的方式. 使用JNDI API , 應(yīng)用程序能夠通過指定一個邏輯的名稱來訪問一個DataSource(當(dāng)然可以是其他類型的遠程對象) 對象。DataSourceWhat is DataSourc

溫馨提示

  • 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)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論