?? jdbc-spec.frame9.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="600">
<tr>
<td><font size="-1"><a href="jdbc-spec.frame.html">目錄</a> | <a
href="jdbc-spec.frame8.html">上一頁</a> | <a href="jdbc-spec.frame10.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="16978"></a> </p>
<h2>9 異步、線程和事務</h2>
<h3>9.1 異步請求</h3>
<p>某些數據庫 API(如 ODBC)提供允許異步執行 SQL
語句的機制。因此應用程序可在后臺啟動數據庫操作,然后在等待操作完成期間處理其它工作(如管理用戶接口)。</p>
<p><a name="4535"></a>由于 Java
是多線程環境,因此似乎并不需要支持異步語句執行。如果 Java
程序員希望對于主線程異步地執行語句,他們可以方便地創建獨立線程。</p>
<p><a name="4538"></a> </p>
<h3>9.2 多線程</h3>
<p>要求所有 java.sql
對象的全部操作都具有多線程安全性,而且能夠在多個線程同時調用同一對象時進行正確處理。</p>
<p><a name="20651"></a>某些驅動程序可允許更大程度的并行執行。開發人員可假定進行的是完全并行執行;如果驅動程序需要某種同步形式,則它將提供該形式。開發人員所能看到的唯一不同點是,應用程序運行時并行性減少。</p>
<p><a name="20689"></a>例如,同一 Connection 上的兩個 Statement
可并行執行,它們的 ResultSet
可被并行處理(從開發人員的角度出發)。某些驅動程序將提供這種完全的并行性。其它驅動程序可以執行一條語句并等到在執行完畢后再傳送下一句。</p>
<p><a name="20695"></a>多線程的一個特殊用途是可以取消一條長運行語句。方法是使用一個線程來執行該語句,而使用另一線程通過
Statement.cancel() 方法取消該語句。</p>
<p><a name="20690"></a><strong>在實際操作過程中,我們希望大多數 JDBC
對象都只在一個線程中被訪問。但是某些多線程支持是必要的,而且在先前的草案中我們試圖將某些類指定為具有
MT 安全性,而將另一些類指定為不具有 MT
安全性,事實證明復雜程度是增加了而不是降低了</strong>。</p>
<p><a name="11734"></a> </p>
<h3>9.3 事務</h3>
<p>新的 JDBC
連接最初為“自動提交”模式。這意味著在數據庫內每個語句被當作獨立事務執行。</p>
<p><a name="20011"></a>為在單一事務內執行多個語句,首先必須通過調用
Connection.setAutoCommit(false) 禁用自動提交。</p>
<p><a name="20012"></a>當禁用自動提交時,該連接始終具有與其關聯的隱含事務。可執行
Connection.commit 來完成事務或執行 Connection.rollback
來中止事務。提交或反轉也將啟動新的隱含事務。</p>
<p><a name="4265"></a>事務的恰當語義及其隔離層取決于基本數據庫。利用
java.sql.DatabaseMetaData 上的方法可獲取當前缺省值,利用
java.sql.Connection 上的方法可將新打開的連接移到不同隔離層。</p>
<p>接口的最初版本不支持提交跨越不同連接的事務。</p>
<p><br>
</p>
<hr>
<font size="-1"><a href="jdbc-spec.frame.html">
<p>目錄</a> | <a href="jdbc-spec.frame8.html">上一頁</a> | <a
href="jdbc-spec.frame10.html">下一頁</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>版權所有 © 1996, 1997 Sun Microsystems, Inc. 保留所有權利</i></font>。</a><!-- HTML generated by Suzette Pelouch on April 10, 1998 -->
</p>
</body>
</html>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -