?? jdbc-spec.frame2.html
字號(hào):
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<meta HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=gb2312">
<title></title>
</head>
<body bgcolor="#ffffff">
<table width="607">
<tr>
<td width="294"><font size="-1"><a href="jdbc-spec.frame.html">目錄</a> | <a
href="jdbc-spec.frame1.html">上一頁(yè)</a> | <a href="jdbc-spec.frame3.html">下一頁(yè)</a>
</font></td>
<td align="right" width="305"><i>JDBC<sup><font size="-2">TM</font></sup> 指南:入門(mén)</i></td>
</tr>
</table>
<hr>
<p><br>
<a name="5442"></a> </p>
<h2>2 目標(biāo)和原則</h2>
<p>本節(jié)概述 API 設(shè)計(jì)的主要目標(biāo)及原則。<a name="5445"></a> </p>
<h3>2.1 SQL 層 API</h3>
<p>對(duì)于 Java,JDBC 與“調(diào)用級(jí)”的 SQL
接口類似。這意味著它的重點(diǎn)在于執(zhí)行未經(jīng)處理的 SQL
語(yǔ)句和取回結(jié)果。我們也希望將來(lái)定義更高級(jí)別的 API,它們將可能在這些基本級(jí)別的基礎(chǔ)上實(shí)現(xiàn)。更高層次
API 的示例包括 Java
類的直接透明映射表、更通用查詢的語(yǔ)義樹(shù)表示及 Java 的嵌入 SQL
語(yǔ)法。 </p>
<p><a name="5447"></a>我們希望不同的應(yīng)用程序開(kāi)發(fā)商工具會(huì)發(fā)布使用我們的
API 的代碼。但目前我們希望程序員使用該 API,尤其因?yàn)楝F(xiàn)在的 Java
無(wú)其它解決方案可用。 </p>
<p><a name="11218"></a> </p>
<h3>2.2 SQL 一致性</h3>
<p>數(shù)據(jù)庫(kù)系統(tǒng)支持多種 SQL
語(yǔ)法和語(yǔ)義,且這些語(yǔ)法和語(yǔ)義在更高級(jí)功能(例如外部連接和存儲(chǔ)過(guò)程)上彼此并不一致。希望隨著時(shí)間的推移,真正標(biāo)準(zhǔn)的
SQL
部分將不斷擴(kuò)展,從而可包括更多的功能。在此期間,我們采取如下策略:
<ul>
<p><a name="11244"></a></p>
<li>JDBC 允許將任何查詢字符串傳給基本 DBMS
驅(qū)動(dòng)程序,因此如果應(yīng)用程序使用盡可能多的 SQL
功能,就可能在某些 DBMS
上發(fā)生接收錯(cuò)誤。事實(shí)上,應(yīng)用程序查詢甚至無(wú)需是 SQL
或?qū)iT(mén)為特定 DBMS 而設(shè)計(jì)的派生 SQL(例如文檔或圖像查詢 SQL)。<br>
<br>
<a name="11251"></a> </li>
<li>為通過(guò) JDBC 一致性測(cè)試并被稱為“JDBC COMPLIANT(TM)”,我們要求驅(qū)動(dòng)程序至少支持
ANSI SQL92
入門(mén)級(jí)。這樣即可確保需要廣泛移植性的應(yīng)用程序具有最低程度的共性。我們相信
ANSI SQL-2 入門(mén)級(jí)功能是相當(dāng)強(qiáng)大的,而且目前已受到廣泛支持。<br>
<br>
</li>
</ul>
<p><a name="5448"></a></p>
<h3>2.3 JDBC 必須能在公用數(shù)據(jù)庫(kù)接口上執(zhí)行</h3>
<p>我們需要確保 JDBC SQL API 能在公用 SQL 層 API(特別是 ODBC)上實(shí)現(xiàn)。這樣的要求改變了規(guī)范的某些部分,特別是
OUT 參數(shù)和大塊的處理。 </p>
<p><a name="8219"></a> </p>
<h3>2.4 提供與 Java 系統(tǒng)其它部分一致的 Java 接口</h3>
<p>外界給予 Java
強(qiáng)烈而積極的響應(yīng)。在很大程度上,這要?dú)w因于人們認(rèn)為它的語(yǔ)言和標(biāo)準(zhǔn)運(yùn)行環(huán)境不僅結(jié)構(gòu)簡(jiǎn)單,而且功能強(qiáng)大一致。
</p>
<p><a name="8247"></a>我們將盡可能提供 Java
數(shù)據(jù)庫(kù)接口以構(gòu)建和強(qiáng)化已有核心 Java 類的風(fēng)格和功效。 </p>
<p><a name="5450"></a> </p>
<h3>2.5 保持結(jié)構(gòu)簡(jiǎn)單</h3>
<p>至少在開(kāi)始時(shí),我們會(huì)盡可能保持基本 API
的簡(jiǎn)單性。通常,我們會(huì)盡量提供單一機(jī)制來(lái)執(zhí)行某一特定任務(wù),而避免使用雙重機(jī)制。如果漏掉某個(gè)重要功能,我們以后將以擴(kuò)展
API 的方式予以補(bǔ)償。 </p>
<p><a name="5452"></a> </p>
<h3>2.6 盡可能使用強(qiáng)大的靜態(tài)類型</h3>
<p>我們希望能對(duì) JDBC API
進(jìn)行細(xì)分,從而獲得更多的靜態(tài)表達(dá)的類型信息。編譯期間,這可以進(jìn)行更細(xì)致的錯(cuò)誤檢查。
</p>
<p><a name="5455"></a>因?yàn)樵诒举|(zhì)上 SQL
是被動(dòng)態(tài)分類的,所以在運(yùn)行時(shí)可能會(huì)遇到類型不匹配錯(cuò)誤,例如程序員希望
SELECT 返回整型值而數(shù)據(jù)庫(kù)卻返回字符串“foo”。但是,我們?nèi)詫⒃试S程序員在編譯期間指示類型期望值,以便進(jìn)行盡可能多的靜態(tài)檢查。必要時(shí)我們也將支持動(dòng)態(tài)分類的接口(參見(jiàn)第
<a href="jdbc-spec.frame14.html#50686">14</a> 章)。 </p>
<p><a name="5456"></a> </p>
<h3>2.7 保持常見(jiàn)條件的簡(jiǎn)單性</h3>
<p>應(yīng)確保常見(jiàn)條件的簡(jiǎn)單性及非常見(jiàn)條件的可行性。 </p>
<p><a name="16118"></a>常見(jiàn)條件就是指程序員執(zhí)行的簡(jiǎn)單無(wú)參 SQL
語(yǔ)句(如 SELECT、INSERT、UPDATE 或 DELETE),然后(在 SELECT
語(yǔ)句內(nèi))處理簡(jiǎn)單結(jié)果類型行。帶 IN 參數(shù)的 SQL
語(yǔ)句就是一種常見(jiàn)條件。 </p>
<p><a name="16213"></a>稍缺共同性但仍較為重要的條件是:程序員用 INOUT
或 OUT 參數(shù)調(diào)用 SQL
語(yǔ)句。我們需要支持可讀取或?qū)懭霐?shù)兆字節(jié)對(duì)象的 SQL 語(yǔ)句及由 SQL
語(yǔ)句返回的缺乏共同性的條件(例如多重結(jié)果集)。 </p>
<p>我們希望能減少元數(shù)據(jù)的訪問(wèn)(例如,查看結(jié)果集類型或枚舉數(shù)據(jù)庫(kù)中的過(guò)程),且主要應(yīng)由高級(jí)程序員或構(gòu)造器工具使用。因此,規(guī)范的末尾記錄了元數(shù)據(jù)函數(shù)及動(dòng)態(tài)類型數(shù)據(jù)訪問(wèn);程序員一般可跳過(guò)該部分。
</p>
<p><a name="16214"></a> </p>
<h3>2.8 使用多重方法表達(dá)多重功能</h3>
<p>接口設(shè)計(jì)的風(fēng)格之一就是使用較少的過(guò)程,而同時(shí)又提供大量的控制標(biāo)記作為這些過(guò)程的參數(shù),以便影響各種行為。<em>
</em></p>
<p><a name="5466"></a>總的來(lái)說(shuō),Java
核心類的原則用不同的方法表達(dá)不同的功能。這可能會(huì)導(dǎo)致方法數(shù)量的劇增,但也會(huì)使方法更易于理解。這種方法的主要優(yōu)勢(shì)在于:學(xué)習(xí)使用基本接口的程序員不會(huì)因必須指定復(fù)雜行為的相關(guān)參數(shù)而困擾。
</p>
<p><a name="5467"></a>對(duì)于 JDBC
接口,我們盡可能采用相同的方案。一般而言,我們傾向于使用多重方法,而非通過(guò)標(biāo)記參數(shù)使用多用途的方法。
</p>
<p><br>
</p>
<hr>
<font size="-1"><a href="jdbc-spec.frame.html">
<p>目錄</a> | <a href="jdbc-spec.frame1.html">上一頁(yè)</a> | <a
href="jdbc-spec.frame3.html">下一頁(yè)</a> </font></p>
<hr>
<address>
<a href="mailto:jdbc@wombat.eng.sun.com">jdbc@wombat.eng.sun.com</a> 或 <a
href="mailto:jdbc-odbc@wombat.eng.sun.com">jdbc-odbc@wombat.eng.sun.com</a>
</address>
<a href="../../../relnotes/SMICopyright.html"><font size="-1"><i>
<p>版權(quán)所有© 1996, 1997 Sun Microsystems, Inc. 保留所有權(quán)利。</i></font> </a><!-- HTML generated by Suzette Pelouch on April 10, 1998 -->
</p>
</body>
</html>
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -