JDBC 2.0 API被劃分為兩部分:JDBC 2.0核心API和JDBC 2.0標(biāo)準(zhǔn)擴(kuò)展API。核心API在java.sql里面。這是原來的版本就實(shí)現(xiàn)了的基本的功能。標(biāo)準(zhǔn)擴(kuò)展API在javax.sql里面。由JDBC2.0規(guī)范新規(guī)定的一些接口在這里面。當(dāng)然,JDBC2.0也對原來版本的java.sql核心做了一些改動(dòng)。不過不是很大。原來JDBC1.0的程序可以不加修改的在JDBC2.0上運(yùn)行。這是Java的一貫的良好的作風(fēng)。最新的JDBC包可以從sun公司的網(wǎng)站上下載。
JDBC2.0的擴(kuò)展API增加了一些數(shù)據(jù)訪問和數(shù)據(jù)源訪問的重大的功能。這中間有一些是主要用來做企業(yè)計(jì)算的。用JDBC2.0的新的擴(kuò)展包,JDBC提供了一個(gè)從JAVA2平臺的通用的數(shù)據(jù)訪問的方法。
首先,我們來看看JDBC標(biāo)準(zhǔn)擴(kuò)展的API怎樣來和JDBC2.0結(jié)合在一起的。JDBC2.0包括兩個(gè)包:
1、 java.sql包,個(gè)包里面是JDBC2.0的核心API。它包括了原來的JDBC API(JDBC 1.0版本),再加上一些新的2.0版本的API。這個(gè)包在Java 2 Platform SDK里面有。
2、 javax.sql包,這里面是JDBC2.0的標(biāo)準(zhǔn)擴(kuò)展API。這個(gè)包是一個(gè)全新的,在Java 2 Platform SDK, Enterprise Edition里面單獨(dú)提供。
JDBC2.0的核心API包括了JDBC1.0的API,并在此基礎(chǔ)上增加了一些功能,對某些性能做了增強(qiáng)。使java語言在數(shù)據(jù)庫計(jì)算的前端提供了統(tǒng)一的數(shù)據(jù)訪問方法,效率也得到了提高。
JDBC是向后兼容的,JDBC1.0的程序可以不加修改的運(yùn)行在JDBC2.0上。但是,假如程序中用到了JDBC2.0的新特性,就必須要運(yùn)行在JDBC2.0版本上。
概括的來說,JDBC核心API的新特性在兩個(gè)方面做了工作。一個(gè)是支持一些新的功能,另一個(gè)就是支持SQL3的數(shù)據(jù)類型。
1、 在支持新功能方面:包括結(jié)果集可以向后滾動(dòng),批量的更新數(shù)據(jù)。另外,還提供了UNICODE字符集的字符流操作。
2、 在支持SQL3的數(shù)據(jù)類型方面:包括新的SQL3數(shù)據(jù)類型,增加了對持久性對象的存貯。
為了對數(shù)據(jù)的存取,操作更加方便,JDBC的新特性是應(yīng)用程序的設(shè)計(jì)更容易了。例如:數(shù)據(jù)塊的操作能夠顯著的提高數(shù)據(jù)庫訪問的性能。新增加的BLOB, CLOB,和數(shù)組接口能夠是應(yīng)用程序操作大塊的數(shù)據(jù)類型,而不必客戶端在存貯之前進(jìn)行其它的處理。這樣,就顯著的提高了內(nèi)存的使用效率。
下面我們來介紹JDBC2.0的標(biāo)準(zhǔn)擴(kuò)展API。標(biāo)準(zhǔn)擴(kuò)展API分為如下幾個(gè)方面:
1、 DataSource接口:和Java名字目錄服務(wù)(JNDI)一起工作的數(shù)據(jù)源接口。它提供了對數(shù) 吹囊恢指玫牧臃椒ā?br>; 2、 Connection pooling(連接池):可以重復(fù)使用連接,而不是對每個(gè)請求都使用一個(gè)新的連接。
3、 Distrubute transaction(分布式的事務(wù)):在一個(gè)事務(wù)中涉及到了多個(gè)數(shù)據(jù)庫服務(wù)器。
4、 Rowsets:JavaBean組件包含了結(jié)果集,主要用來將數(shù)據(jù)傳給瘦客戶,或者提供一個(gè)可以滾動(dòng)的結(jié)果集。