亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? jdbc-spec.frame7.html

?? JDBC入門中文文檔
?? HTML
?? 第 1 頁 / 共 2 頁
字號:
<!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.frame6.html">上一頁</a> | <a href="jdbc-spec.frame8.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="20376"></a> </p>

<h2>7 傳送參數和接收結果</h2>

<p>有關完整的接口描述,參見單獨的 JDBC API 文檔。 </p>

<p><a name="5514"></a><strong>另請參閱附錄 <a href="jdbc-spec.frame15.html#3883">A</a> 
中所述的被拒絕的“Holder”機制。</strong></p>

<p><a name="4149"></a> </p>

<h3>7.1 查詢結果</h3>

<p>執行查詢語句的結果將生成一些行,這些行可由 java.sql.ResultSet 
對象訪問。ResultSet 對象提供一套“get”方法,允許訪問當前行的不同列。利用 
ResultSet.next 方法可實現 ResultSet 行之間移動。 </p>

<pre><code>// 我們將執行返回行集合的 SQL 語句,
</code></pre>

<pre><code>// 其中列 1 為 int、列 2 為 String
</code>// 列 3 為字節數組</pre>

<pre><code>// 
</code></pre>

<pre><code>java.sql.Statement stmt = conn.createStatement();
</code></pre>

<pre><code>ResultSet r = stmt.executeQuery(&quot;SELECT a, b, c FROM Table1&quot;);
</code></pre>

<pre><code>while (r.next()) {
</code></pre>

<pre><code>	// 打印當前行的值
</code></pre>

<pre><code>	int i = r.getInt(&quot;a&quot;);
</code></pre>

<pre><code>	String s = r.getString(&quot;b&quot;);
</code></pre>

<pre><code>	byte b[] = r.getBytes(&quot;c&quot;);
</code></pre>

<pre><code>	System.out.println(&quot;ROW = &quot; + i + &quot; &quot; + s + &quot; &quot; + b[0]);
</code></pre>

<pre><code>}
</code></pre>

<p>指定列的方法有兩種:列索引(更有效)或列名(更方便)。對應地,我們提供以列索引為參數的 
getString 方法和以列名為參數的 getString 方法。 </p>

<p><a name="26252"></a><strong>評論家使我們確信:我們必須同時支持列索引和列名。某些評論家強調指出,他們需要高效的數據庫訪問,因此喜歡用列索引,而其它評論家強調他們需要方便地使用列名(注意,某些 
SQL 
查詢可返回不含列名或含多個相同列名的表。這種情況下,程序員應使用列號)。 
</strong></p>

<p>為了最大程度的可移植性,應按由左至右的順序讀取某行的各列,且每列只能讀一次。這反映了在某些基本數據庫協議中存在實現限制。 
</p>

<p><a name="26308"></a> </p>

<h4>7.1.1 查詢結果的數據轉換</h4>

<p>ResultSet.getXXX 方法試圖將數據庫返回的 SQL 類型轉換為 getXXX 
方法返回的 Java 類型。 </p>

<p><a name="28700"></a><a href="jdbc-spec.frame7.html#30717">第 21 頁的表 1</a> 
列出了通過 getXXX 方法實現從 SQL 類型到 Java 
類型的轉換。例如,可以使用 getInt 嘗試將 SQL VARCHAR 
值作為整數讀取,但不能將 SQL FLOAT 作為 java.sql.Date 讀取。 </p>

<p>如果試圖進行非法轉換或數據轉換失敗(例如對 SQL VARCHAR 值“foo”執行 
getInt),則將拋出 SQLException。 </p>

<p><a name="30761"></a> </p>

<p align="center"><a name="30758"></a> <a name="30717"></a><img src="table1.gif"
width="522" height="567"> </p>

<p><a name="30760"></a> </p>

<h4>7.1.2 空結果值</h4>

<p>要確定給定結果值是否為 SQL“NULL”,則必須首先讀取列,然后使用 
ResultSet wasNull 方法查看是否返回了 SQL“NULL”(另請參閱附錄 <a
href="jdbc-spec.frame15.html#25317">A.9</a>)。 </p>

<p><a name="25307"></a>當使用 getXXX 方法讀取 SQL“NULL”時,將得到: 

<ul>
  <p><a name="26541"></a></p>
  <li>返回 Java 對象的 getXXX 方法返回的 Java“null”值<br>
    <br>
    <a name="26542"></a> </li>
  <li>getByte、getShort、getInt、getLong、getFloat 和 getDouble 返回的零值<br>
    <br>
    <a name="27824"></a> </li>
  <li>getBoolean. 返回的 false 值<br>
    <br>
  </li>
</ul>

<p><a name="27826"></a></p>

<h4>7.1.3 檢索特大行值</h4>

<p>JDBC 允許使用 getBytes 和 getString 檢索任意大的 LONGVARBINARY 或 
LONGVARCHAR 數據,范圍只要不超出 Statement.getMaxFieldSize 
值限定的界限。但是,應用程序設計人員會經常發現,在相對較小的固定塊中檢索非常大的數據將更為方便。 
</p>

<p>為適應這一點,ResultSet 類可返回 java.io.Input 
流,以塊為單位讀取數據。但是,因為調用 ResultSet 的下一個“get”將會使這些流自動關閉,因此必須立即訪問其中的每個流。<strong>這反映了對大塊訪問的基本實現限制。</strong></p>

<p><a name="25069"></a>Java 流返回無類型的字節,并且對 ASCII 和 Unicode 
都適用。我們定義了三種獨立的獲得流的方法。 GetBinaryStream 
返回的流只提供來自數據庫的原字節而不進行任何轉換。GetAsciiStream 
返回的流提供單字節 ASCII 字符。GetUnicodeStream 
返回的流則提供兩個字節的 Unicode 字符。 </p>

<p><a name="25098"></a>例如: </p>

<pre><code>java.sql.Statement stmt = conn.createStatement();
</code></pre>

<pre><code>ResultSet r = stmt.executeQuery(&quot;SELECT x FROM Table2&quot;);
</code></pre>

<pre><code>// 在 4 K 的塊中檢索列 1 的結果:
</code></pre>

<pre><code>byte[] buff = new byte[4096];
</code></pre>

<pre><code>while (r.next()) {
</code></pre>

<pre><code>	java.io.InputStream fin = r.getAsciiStream(&quot;x&quot;);
</code></pre>

<pre><code>	for (;;) {
</code></pre>

<pre><code>		int size = fin.read(buff);
</code></pre>

<pre><code>		if (size == -1) {
</code></pre>

<pre><code>			break;
</code></pre>

<pre><code>		}
</code></pre>

<pre><code>		// 將新填充的緩沖區傳給某些 ASCII 輸出流:
</code></pre>

<pre><code>		output.write(buff, 0, size);
</code></pre>

<pre><code>	}
</code></pre>

<pre><code>}
</code></pre>

<h4>7.1.4 可選或多重 ResultSet</h4>

<p>我們通常希望使用 executeQuery(返回單個 ResultSet)或 executeUpdate(可用于任何數據庫修改語句,且返回更新行的計數)執行 
SQL 語句。 </p>

<p><a name="20214"></a>但在某些環境下,應用程序在語句執行前可能不知道給定語句是否返回 
ResultSet。另外,某些存儲過程可能返回多個不同的 ResultSet 和/或更新計數。 
</p>

<p><a name="20231"></a>為適應這些需要,我們提供一種機制,以使應用程序能執行語句,然后處理 
ResultSet 的任意集合并更新計數。該機制基于完全通用的“execute”方法,并得到方法 
getResultSet、getUpdateCount 和 getMoreResults 
的支持。這些方法允許應用程序每次查詢一個語句結果并確定給定結果是 
ResultSet 還是更新計數。 </p>

<p><a name="20240"></a> </p>

<h3>7.2 傳遞 IN 參數</h3>

<p>為將參數傳遞到 SQL 語句,java.sql.PreparedStatemen 類提供了一系列 
setXXX 
方法。這些方法可用來在每一次語句執行前填充參數域。一旦為給定語句定義了參數值,該參數值就可用于語句的多重執行,直到調用 
PreparedStatement.clearParameters 清除這一參數為止。 </p>

<pre><code>java.sql.PreparedStatement stmt = conn.prepareStatement(
</code></pre>

<pre><code>					&quot;UPDATE table3 SET m = ? WHERE x = ?&quot;);
</code></pre>

<pre><code>// 傳遞兩個參數。一個在每次 for 循環中都改變,
</code></pre>

<pre><code>// 另一個為常量。
</code></pre>

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
五月开心婷婷久久| 精品国产免费视频| 国产欧美日韩中文久久| 亚洲香蕉伊在人在线观| 成人免费观看视频| 精品国产a毛片| 日日夜夜免费精品| 欧美日韩午夜精品| 亚洲美女屁股眼交| av网站免费线看精品| 国产亚洲短视频| 麻豆国产91在线播放| 欧美日免费三级在线| 亚洲综合无码一区二区| 91论坛在线播放| 亚洲精品少妇30p| 色琪琪一区二区三区亚洲区| 一区二区三区自拍| 亚洲欧美在线aaa| 久久超级碰视频| caoporen国产精品视频| 国产精品日韩精品欧美在线| 国产成人丝袜美腿| 久久精品夜夜夜夜久久| 国产精品白丝av| 国产精品青草久久| 91在线无精精品入口| 玉足女爽爽91| 欧美裸体一区二区三区| 精品一区二区日韩| 欧美高清在线一区二区| 色婷婷精品久久二区二区蜜臀av| 有码一区二区三区| 7878成人国产在线观看| 国产乱人伦精品一区二区在线观看 | 成人av网站免费| 亚洲欧美色图小说| 日韩一区和二区| 国产成人av一区二区| 亚洲人快播电影网| 日韩一区二区三区在线视频| 97se亚洲国产综合自在线观| 亚洲激情图片qvod| 精品国产乱码久久久久久图片| 韩日精品视频一区| 亚洲精品成人悠悠色影视| 日韩精品一区二区在线观看| 国产成人丝袜美腿| 亚洲一二三四在线| 中文字幕成人av| 欧美一区二区精品在线| 成人app软件下载大全免费| 一区二区三区在线观看动漫| 日韩一级二级三级精品视频| av动漫一区二区| 国产米奇在线777精品观看| 一区二区成人在线观看| 亚洲精品一区二区在线观看| 欧美色网一区二区| 成人福利视频在线| 美日韩一级片在线观看| 午夜视频一区二区| 亚洲人一二三区| 日本一区二区三区视频视频| 日韩一区二区三区电影| 在线观看免费成人| 99久久免费精品高清特色大片| 老司机精品视频在线| 日韩av不卡在线观看| 天天综合网 天天综合色| 依依成人综合视频| 亚洲精品ww久久久久久p站| 欧美韩国日本综合| 国产精品你懂的| 国产精品传媒视频| 国产精品亲子伦对白| 成人欧美一区二区三区视频网页| 亚洲成人在线网站| 午夜精品免费在线观看| 亚洲国产精品久久不卡毛片| 性久久久久久久| 激情成人午夜视频| 国产精品白丝av| 91欧美一区二区| 欧美日韩在线综合| 欧美精品免费视频| 欧美成人r级一区二区三区| 久久久久久久久岛国免费| 久久精品人人做人人爽人人| 欧美国产激情二区三区| 亚洲国产精品久久人人爱| 日韩精品一级二级 | 亚洲欧美在线高清| 亚洲最新在线观看| 久久69国产一区二区蜜臀 | 精品国产伦一区二区三区观看体验 | 欧美一区二区三区四区五区 | 久久国产人妖系列| 国产成人午夜电影网| 欧美午夜寂寞影院| 久久嫩草精品久久久精品一| 国产精品美女久久久久aⅴ国产馆| 国产精品福利一区| 免费亚洲电影在线| 成人av小说网| 欧美成人精品1314www| 亚洲欧洲国产日本综合| 日韩国产在线观看| 91小视频免费观看| 久久久久久久免费视频了| 亚洲黄色av一区| 成人黄色一级视频| 久久亚洲综合色一区二区三区 | 国产一区二区在线免费观看| 91亚洲精品乱码久久久久久蜜桃| 日韩欧美中文字幕公布| 亚洲麻豆国产自偷在线| 高清不卡一区二区| 日韩一区二区免费在线电影| 亚洲国产成人tv| 欧洲av一区二区嗯嗯嗯啊| 中文字幕在线一区免费| 国产精品系列在线播放| 日韩欧美亚洲国产精品字幕久久久| 亚洲国产日韩精品| 色综合色狠狠天天综合色| 中文字幕av一区二区三区免费看 | 亚洲美女淫视频| 久国产精品韩国三级视频| 91福利在线导航| 亚洲一区二区三区中文字幕| 91年精品国产| 亚洲蜜臀av乱码久久精品| 91丨porny丨蝌蚪视频| 亚洲国产高清在线| 从欧美一区二区三区| 亚洲欧洲三级电影| av中文字幕在线不卡| 中文字幕一区二区三区四区不卡 | 有码一区二区三区| 在线精品视频免费播放| 亚洲福利视频导航| 欧美一区二区精美| 国产乱人伦精品一区二区在线观看 | 日本中文字幕一区二区有限公司| 日韩午夜在线播放| 国产精品一区二区免费不卡 | 国产精品一级二级三级| 国产精品网站一区| 欧美综合欧美视频| 精品中文字幕一区二区| 国产精品伦理一区二区| 欧美亚洲日本国产| 激情图片小说一区| 一区视频在线播放| 欧美日韩国产区一| 国产福利不卡视频| 亚洲午夜视频在线| 久久亚洲综合色| 欧美色爱综合网| 国产美女在线精品| 亚洲国产毛片aaaaa无费看 | 国产一区二三区| 亚洲图片欧美视频| 中文字幕日韩一区二区| 欧美一区二区三区小说| 97精品视频在线观看自产线路二| 日韩经典一区二区| 亚洲特黄一级片| 亚洲精品一区二区三区福利| 欧美视频第二页| 99vv1com这只有精品| 狠狠网亚洲精品| 日本欧美在线观看| 亚洲va欧美va人人爽| 一区二区日韩av| 亚洲欧洲成人自拍| 久久婷婷色综合| 日韩视频永久免费| 欧美日免费三级在线| 日本精品视频一区二区| 波多野结衣在线一区| 国产成人在线观看| 国产精品456露脸| 国产久卡久卡久卡久卡视频精品| 日韩av成人高清| 日韩av网站在线观看| 蜜臀a∨国产成人精品| 蜜臀精品一区二区三区在线观看 | 欧美视频一二三区| 欧美视频一区在线观看| 欧美午夜精品久久久久久孕妇| 91尤物视频在线观看| 91影院在线免费观看| 99热这里都是精品| 欧美色综合天天久久综合精品| 欧美亚洲国产怡红院影院| 色婷婷久久综合| 欧美亚洲动漫精品| 91麻豆精品久久久久蜜臀|