?? jdbc2.0.frame13.html
字號:
<!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="100%">
<tr>
<td><font size="-1"><a href="jdbc2.0.frame.html">目錄</a> | <a
href="jdbc2.0.frame12.html">上一頁</a> | <a href="jdbc2.0.frame14.html">下一頁</a> </font></td>
<td align="right"><i>JDBC<sup><font size="-2">TM</font></sup> 指南:入門</i></td>
</tr>
</table>
<hr>
<p><br>
<a name="284927"></a> </p>
<h2>附錄 B:附加的建議 </h2>
<p>本節(jié)列出了一些對 JDBC 2.0 增加部分的建議,而我們<strong>沒有</strong>將其添加到
JDBC API 中。列出這些建議,只是記錄 JDBC 2.0
中沒有采納的部分方案。我們歡迎對以下列出的有關(guān)項提出意見。</p>
<p><a name="281852"></a> </p>
<h2>B.1 v0.1 的其它建議</h2>
<p>處理結(jié)果 — 增加一種方法在插入操作之后確定自動遞增的鍵值。</p>
<p><a name="282325"></a>增強元數(shù)據(jù) —
為預(yù)先準(zhǔn)備好的語句參數(shù)和預(yù)先準(zhǔn)備好的語句結(jié)果集增加元數(shù)據(jù)。JDBC
沒有提供描述預(yù)先準(zhǔn)備好的語句的元數(shù)據(jù);也沒有提供在不執(zhí)行語句(相當(dāng)于
SQL92 DESCRIBE OUTPUT 和 ODBC SQLDescribeParam)時描述其結(jié)果的元數(shù)據(jù)。</p>
<p><a name="281853"></a>新的數(shù)據(jù)類型 — 增加 SQL 時間間隔數(shù)據(jù)類型 </p>
<p><a name="281857"></a>安全性 — 允許應(yīng)用程序選擇基本傳輸屬性(例如
SSL)。提供 SSL 套接字實現(xiàn)。JDBC
應(yīng)用程序必須能夠為保護線協(xié)議(例如加密)的安全選擇驅(qū)動程序支持的機制。對于
SSL,一種選擇是允許應(yīng)用程序指定特殊的密碼算法集(密鑰交換算法、大批量加密、MAC
[消息鑒定算法]) </p>
<p><a name="281859"></a>安全鑒定 — 允許 JDBC
應(yīng)用程序為執(zhí)行鑒定選擇驅(qū)動程序支持的機制。應(yīng)該支持以下機制:用戶名、密碼;Kerberos
令牌;數(shù)字證書。</p>
<p><a name="281862"></a>命令完成(Command Complete)事件 —
支持一種用戶提供的事件對象,它在某命令(包括當(dāng)前命令和常規(guī)命令,同步或異步命令)完成時即啟動。-
- 各種事件:Connect 事件;Disconnect 事件;Before Connect 事件 </p>
<p><a name="281863"></a>光標(biāo)實現(xiàn)位置 — 支持客戶機端對服務(wù)器端。</p>
<p><a name="281865"></a>參數(shù)管理 — 支持: Append、GetCount、GetItem(按名稱/位置)、Delete
和 Refresh。</p>
<p><a name="281872"></a>混和式 SQL/Java 集成 — 提供了定義 Java ADT
的機制,同時提供混和式 SQL/Java 查詢機制,可以查詢列為 SQL
基本單元或 Java 類的表。</p>
<p><a name="281873"></a>專業(yè)數(shù)據(jù)類型 — 提供對 OLAP、Spatial、TimeSeries
及其它專業(yè)數(shù)據(jù)類型的擴展。</p>
<p><a name="281874"></a>序列化數(shù)據(jù)、時間、時間戳 —
允許這些類型被序列化。</p>
<p><a name="281875"></a>異步請求 —
允許調(diào)用程序請求異步地執(zhí)行某語句。</p>
<p><a name="281876"></a>Java ADT — 引入專門針對 Java Classes/Java Beans 的 SQL
概念,它所引入的 SQL3 概念對于在數(shù)據(jù)庫和商務(wù)應(yīng)用程序環(huán)境中處理
Java
對象很有用。例如,讓數(shù)據(jù)庫系統(tǒng)知曉某種類中的哪些方法定義可以用于在對象上執(zhí)行操作(例如比較等)就很有用。一種方法就是引入“通用”方法名稱。除數(shù)據(jù)庫外,常規(guī)商務(wù)應(yīng)用程序也可以使用這些方法名。</p>
<p><a name="281877"></a>增加對 SQL PSM 的支持。</p>
<p><a name="281878"></a>增加附加的 SQL 語言功能,例如各種形式的連接。</p>
<p><a name="281879"></a>增加 JDBC 兼容性 *等級*,這與單獨進行 API
調(diào)用以查看驅(qū)動程序是否支持某個特性相反。</p>
<p><a name="281880"></a>增加一種 API 調(diào)用,用來描述驅(qū)動程序所理解的 URL
格式。</p>
<p><a name="281881"></a>增加一種行對象,以本地格式封裝數(shù)據(jù)庫數(shù)據(jù)。</p>
<p><a name="282201"></a>增加日期、時間、時間戳的不變性。</p>
<p><a name="281850"></a> </p>
<h2>B.2 v0.7 的附加建議</h2>
<ul>
<p><a name="288240"></a></p>
<li>有人建議采用一種為 <code>Statement</code>
接口上的每個新屬性(例如結(jié)果集類型、并發(fā)類型等)提供單獨方法的替代途徑。我們可以引入一種新類
<code>ResultSetProperties</code>,它本身就包含了獲取及設(shè)置這些屬性的所有方法。這樣
Statement 就只包含了兩個獲取和設(shè)置 <code>ResultSetProperties</code>
屬性的方法。這種途徑有助于簡化 <code>Statement</code> 接口。<br>
<br>
<a name="293573"></a> </li>
<li>增加新的 CursorResultSet 接口,它擴展 ResultSet 并增加 <code>CursorStatement
prepareUpdate() throws SQLException</code> 方法;或者在現(xiàn)有 <code>ResultSet</code>
接口中增加 <code>prepareUpdate</code>
方法,同時定義:如果沒有光標(biāo)與該方法相關(guān)聯(lián),該方法即可能失敗。增加新的
<code>CursorStatement</code> 接口,它擴展 <code>PreparedStatement</code>
并增加新的方法<code> void update() throws SQLException </code>和 <code>void
delete() throws SQLException</code>。引入另外一種中間<code> CursorResultSet</code>(在繼承層次結(jié)構(gòu)中位于
<code>ResultSet</code> 和 <code>ScrollableResultSet</code>
之間)也會很有幫助。引入 CursorStatement
的動機是避開解析每個查詢來查找光標(biāo)操作的必要性。讓
CursorStatement 來擴展 PreparedStatement 的原因則是為了獲得對 setXXX
方法的訪問。可以使用 setXXX() 方法來向 CursorResultSet
中的當(dāng)前行的相應(yīng)各列提供新值。executeUpdate()
方法可以執(zhí)行實際的更新(利用已設(shè)置的參數(shù)值)或刪除(忽略參數(shù)值)。execute()
和 executeQuery() 方法將被覆蓋,以便它們總能拋出 SQLException。另外,把
CursorStatement 綁到創(chuàng)建它的 CursorResultSet 上,這樣無論何時對
CursorResultSet
進行重新定位(下一個,相對位置,絕對位置,第一個,最后一個,等等),CursorStatement
都將自動進行跟蹤且更新/刪除方法能夠作用于正確的行。**
我們打算廢除 CursorStatement 而只是將該功能添加到 CursorResultSet
中,這是因為通常這些事項具有一一對應(yīng)關(guān)系。<br>
<br>
<a name="293575"></a> </li>
<li>在 <code>Statement</code> 接口上增加 <code>void
setCursorProperties(CursorProperties props) throws SQLException</code>; 定義新的<code>java.sql.CursorProperties</code>
類。增加語句屬性的想法比較誘人:當(dāng)執(zhí)行語句時,就會返回 <code>ResultSet</code>
的適當(dāng)子類。但是,我們并不推薦為所有這些屬性在 <code>Statement</code>
中增加一堆獨立的存取器/變化器,而是推薦定義一種具有公共成員的
<code>CursorProperties</code> 類,然后在 <code>Statement</code>
中僅增加一種新方法: <code>void setCursorProperties(CursorProperties props)
throws SQLException</code>;這樣就可以消除新 <code>Statement.setFetchSize</code>
和 <code>getFetchSize</code> 方法的必要性。<code>CursorProperties</code>
可具有公有的構(gòu)造函數(shù),該函數(shù)返回帶有詳細定義的缺省值 (TBD) 的<code>CursorProperties</code>
對象。該類的成員可包括: 0. boolean useCursors —
如果為真,則該語句從 executeQuery 返回 <code>CursorResultSet</code>。1.
String cursorName — 不鼓勵使用 <code>Statement.setCursorName()</code>。2. boolean
scrollable — 如果為真,則該語句從 executeQuery 返回 <code>ScrollableResultSet</code>。3.
boolean readonly — 如果為真,則該光標(biāo)為 READONLY(只讀的)。4. int
rowCacheSize — 提示驅(qū)動程序一次從數(shù)據(jù)庫檢索多少行。5. boolean
closeOnEndTransaction — 在 ANSI SQL '92 中,光標(biāo)是在 commit/rollback
時自動關(guān)閉的,但是許多數(shù)據(jù)庫都允許光標(biāo)保持打開狀態(tài)以提高效率。6.
String[] updatableColumns — 在 SQL '92 語法中表示在“FOR UPDATE OF <column
list>”子句中的列的清單。7. boolean sensitive —
如果為真,則在應(yīng)用程序滾動這些行時可以看見對基本表所作的改變(光標(biāo)打開狀態(tài)時發(fā)生的)。<br>
<br>
<a name="293570"></a> </li>
<li>可以將任何 SQL
查詢的結(jié)果看作是定義簡單的結(jié)構(gòu)化類型。結(jié)構(gòu)化類型的各個域?qū)?yīng)于查詢結(jié)果的各列,而查詢所返回的結(jié)果集中的每行則代表該類型的實例。JDBC
可以允許從 SQL 查詢所隱式定義的類型映射到 Java
類,或者甚至在常規(guī)關(guān)系表和 Java 類之間進行雙向映射。<br>
<br>
</li>
</ul>
<p><br>
</p>
<hr>
<font size="-1"><a href="jdbc2.0.frame.html">
<p>目錄</a> | <a href="jdbc2.0.frame12.html">上一頁</a> | <a
href="jdbc2.0.frame14.html">下一頁</a> </font></p>
<hr>
<address>
<a href="mailto:jdbc@eng.sun.com">jdbc@eng.sun.com</a> 或 <a
href="mailto:jdbc-business@eng.sun.com">jdbc-business@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 June 09, 1998 -->
</p>
</body>
</html>
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -