JDBC專(zhuān)題說(shuō)明(2)
發(fā)表時(shí)間:2024-05-27 來(lái)源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]JDBC專(zhuān)題介紹(2) 2. 3. JDBC必須可以建立在現(xiàn)有的數(shù)據(jù)庫(kù)接口上 我們必須能夠保證 JDBC SQL API 能夠建立在普通的SQL API上,尤其是ODBC。這些要求已經(jīng)對(duì)這個(gè)規(guī)范的一些部分產(chǎn)生了影響,尤其是對(duì)傳出參數(shù)(OUT parameter)和大數(shù)據(jù)塊的處理。 2...
JDBC專(zhuān)題介紹(2)
2. 3. JDBC必須可以建立在現(xiàn)有的數(shù)據(jù)庫(kù)接口上
我們必須能夠保證 JDBC SQL API 能夠建立在普通的SQL API上,尤其是ODBC。這些要求已經(jīng)對(duì)這個(gè)規(guī)范的一些部分產(chǎn)生了影響,尤其是對(duì)傳出參數(shù)(OUT parameter)和大數(shù)據(jù)塊的處理。
2. 4. 必須保證這個(gè)接口與JAVA系統(tǒng)的其他部分保持一致
目前對(duì)JAVA的積極回應(yīng)已經(jīng)十分熱烈。很大程度上是由于這個(gè)語(yǔ)言標(biāo)準(zhǔn)以及標(biāo)準(zhǔn)運(yùn)行時(shí)庫(kù)被認(rèn)為是一致,簡(jiǎn)單和強(qiáng)大的。我們將盡我們所能,提供這個(gè)Java數(shù)據(jù)庫(kù)接口,這個(gè)接口將建立在Java內(nèi)核現(xiàn)有的這種風(fēng)格,并且將進(jìn)一步加強(qiáng)它。
2. 5. 保持簡(jiǎn)單
We would prefer to keep this base API as simple as possible, at least initially. In general we would prefer to provide a single mechanism for performing a particular task, and avoid provid-ing duplicate mechanisms. We will extend the API later if any important functionality is miss-ing.
我們將力爭(zhēng)使得基本的API盡量簡(jiǎn)單,至少開(kāi)始的時(shí)候是這樣的。一般來(lái)說(shuō),我們希望對(duì)實(shí)現(xiàn)每個(gè)特定的任務(wù)只提供一種方案,而避免提供多種方案。如果一些重要的功能遺漏了,那么我們?cè)谕硇⿻r(shí)候?qū)U(kuò)充這個(gè)API。
2. 6. 盡量保持強(qiáng)的、靜態(tài)的類(lèi)型
我們希望這個(gè)JDBC API保持盡量強(qiáng)的類(lèi)型檢查,使得盡可能多的類(lèi)型信息可以靜態(tài)地表達(dá)。著使得盡可能多的錯(cuò)誤可以在編譯的時(shí)候被發(fā)現(xiàn)。
由于SQL本身是動(dòng)態(tài)類(lèi)型的,所以我們可能會(huì)在程序運(yùn)行的時(shí)候遇到類(lèi)型不能匹配的問(wèn)題。例如:當(dāng)一個(gè)程序員在希望SELECT返回一個(gè)整數(shù),但是實(shí)際返回的是一個(gè)字符串“foo”. 但是我們依然希望程序員把他們所希望的類(lèi)型在編譯的時(shí)候就能夠表達(dá)清楚,這樣我們可以做盡可能多的靜態(tài)檢查。我們也希望在必要的時(shí)候能夠支持動(dòng)態(tài)類(lèi)型接口(見(jiàn)第四章)
2. 7. 使普通任務(wù)簡(jiǎn)化
我們希望普通的任務(wù)能夠是簡(jiǎn)單的,而不一般的工作是可行的。
一個(gè)普通任務(wù)是指一個(gè)程序員執(zhí)行一個(gè)簡(jiǎn)單的沒(méi)有參數(shù)的SQL語(yǔ)句(例如:SELECT,INSERT,UPDATE,DELETE),然后(例如SELECT)處理返回的具有簡(jiǎn)單類(lèi)型的元組。一個(gè)具有傳入?yún)?shù)(IN parameter)的SQL語(yǔ)句也是普通的。
不那么普通但是也是十分重要的情形是當(dāng)程序員使用有INOUT,OUT參數(shù)的SQL語(yǔ)句。我們也需要支持讀寫(xiě)幾兆字節(jié)對(duì)象的SQL語(yǔ)句,更特別一些的情形包括一個(gè)語(yǔ)句返回了多個(gè)結(jié)果集合。
我們希望元數(shù)據(jù)(Meatdata)的使用很少的,只是那些熟練的程序員以及開(kāi)發(fā)工具才需要處理的問(wèn)題。元數(shù)據(jù)存取函數(shù)以及動(dòng)態(tài)類(lèi)型數(shù)據(jù)存取函數(shù)在這個(gè)文檔末尾,一般的程序員可以不必關(guān)心這些章節(jié)。
2. 8. 不同的功能讓不同的方法(函數(shù))來(lái)實(shí)現(xiàn)(“方法”的原文是:method,這樣翻譯是跟VB的)
一種界面設(shè)計(jì)風(fēng)格是使用很少的過(guò)程,提供許多作為參數(shù)傳遞的控制標(biāo)志,這樣它們可以用來(lái)影響很大一個(gè)范圍內(nèi)的各種行為。來(lái)表達(dá)不同的功能。這趨向與使用很多的方法,但是每個(gè)方法都比較同意理解。
一般來(lái)說(shuō),Java內(nèi)核類(lèi)使用不同的方法(method)。這個(gè)步驟的主要優(yōu)點(diǎn)是開(kāi)始學(xué)習(xí)基本界面的程序員可以不必被那些與復(fù)雜功能相關(guān)的參數(shù)所困擾。我們力圖在JDBC接口上也采用相同的策略。一般來(lái)說(shuō)采用不同的方法而不是采用不同的標(biāo)志和多用途的方法。