亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
亚洲色图视频网| 欧美一级免费大片| 不卡的av电影| 91在线观看视频| 97久久精品人人爽人人爽蜜臀 | 精品久久久久久久久久久院品网| 欧美va天堂va视频va在线| 精品国产乱码久久久久久影片| 欧美成人官网二区| 国产精品超碰97尤物18| 亚洲欧洲日韩av| 国产精品国产三级国产普通话99| 一区二区三区在线看| 在线视频中文字幕一区二区| 欧美日韩成人一区| 久久先锋影音av鲁色资源网| 欧美日精品一区视频| 欧美视频一区二区三区| 在线综合视频播放| 亚洲欧洲日韩综合一区二区| 视频一区免费在线观看| 成人免费的视频| av在线不卡网| 欧美中文字幕一区二区三区| 精品国一区二区三区| 亚洲精品高清在线| 精品一区二区三区久久| 国产成人小视频| 色94色欧美sute亚洲13| 欧美xxxx在线观看| 玉足女爽爽91| 国产一区二区毛片| 欧美视频你懂的| 国产精品视频你懂的| 免费成人深夜小野草| 99久久精品免费看国产| 日韩欧美成人午夜| 亚洲九九爱视频| 国产精品一级在线| 欧美一区二区三区日韩视频| 亚洲狼人国产精品| 亚洲精品老司机| eeuss鲁一区二区三区| 成人av资源下载| 91免费视频观看| 中文字幕一区免费在线观看| 日韩经典一区二区| 欧美亚洲愉拍一区二区| 椎名由奈av一区二区三区| 奇米色一区二区| 欧美精选在线播放| 亚洲主播在线观看| 一本在线高清不卡dvd| 亚洲国产成人一区二区三区| 精品一区二区在线观看| 欧美一区二区美女| 日韩国产欧美在线观看| 欧美亚洲高清一区| 日韩码欧中文字| 99国产精品视频免费观看| 国产欧美日产一区| 高清日韩电视剧大全免费| 26uuu另类欧美| 国产一区二区精品久久99| 精品国产乱码久久久久久免费 | 香蕉乱码成人久久天堂爱免费| 色网站国产精品| 亚洲精品乱码久久久久| 免费看欧美女人艹b| 中文字幕一区二区三区蜜月| 欧美色综合影院| 成人午夜私人影院| 日韩成人一区二区| 亚洲天天做日日做天天谢日日欢 | 精品入口麻豆88视频| 久久精品国产色蜜蜜麻豆| 91麻豆精品国产91久久久久久久久| 日韩1区2区日韩1区2区| 精品国产乱码久久久久久闺蜜 | 国产精品欧美经典| 日韩一区精品视频| 日韩一区二区在线看| 午夜精品123| 99精品久久只有精品| 中文字幕亚洲视频| 555www色欧美视频| 久久精品国产成人一区二区三区 | 免费久久精品视频| 久久免费视频色| 菠萝蜜视频在线观看一区| 国产精品美女久久久久久| 一本一本久久a久久精品综合麻豆| 一区二区在线观看不卡| 欧美一区二区女人| www.亚洲人| 午夜欧美大尺度福利影院在线看| 精品久久久久一区二区国产| 99久久er热在这里只有精品15| 丝袜脚交一区二区| 国产欧美一区二区精品婷婷| 日本电影欧美片| 中文字幕一区二区三区四区| 91精品国产全国免费观看| 成人午夜精品在线| 久久久不卡网国产精品一区| 成人av免费在线| 亚洲成人精品影院| 国产欧美日韩一区二区三区在线观看| 日韩你懂的在线观看| 欧美一级视频精品观看| 日韩—二三区免费观看av| 97精品久久久午夜一区二区三区| 美女视频一区在线观看| 日韩一区二区三区高清免费看看| 国产乱人伦偷精品视频免下载| 夜色激情一区二区| 国产精品三级av| 精品伦理精品一区| 欧美老肥妇做.爰bbww视频| 国产成人精品影视| 午夜精品久久久久久久99樱桃| 精品国产第一区二区三区观看体验| 在线观看视频一区| 不卡av在线网| 国产成人精品一区二区三区网站观看| 日本不卡不码高清免费观看| 精品久久久久久亚洲综合网| 偷拍日韩校园综合在线| 久久精品一区二区| 3atv一区二区三区| 欧美人体做爰大胆视频| 972aa.com艺术欧美| 一本大道av一区二区在线播放| 亚洲午夜久久久久久久久电影网| 天堂精品中文字幕在线| 亚洲日本va午夜在线电影| 中文字幕成人av| 日本一区二区电影| 欧美国产一区二区| 久久久青草青青国产亚洲免观| 日韩欧美美女一区二区三区| 91精品国产丝袜白色高跟鞋| 欧美性色综合网| 欧美视频在线观看一区二区| 日本二三区不卡| 99久久精品免费看| 国内精品伊人久久久久av影院| 天使萌一区二区三区免费观看| 一区二区三区四区视频精品免费| 国产欧美日韩麻豆91| 国产精品素人一区二区| 国产精品久线观看视频| 中文字幕一区二区三区不卡在线| 国产欧美一区二区精品性| 欧美国产在线观看| 亚洲美女视频一区| 伊人婷婷欧美激情| 天天综合网 天天综合色| 国产精品综合久久| 3d动漫精品啪啪1区2区免费| 综合av第一页| 午夜亚洲国产au精品一区二区| 日本伊人午夜精品| 伊人色综合久久天天人手人婷| 日本一区二区视频在线观看| 国产视频不卡一区| 一区二区三区不卡视频在线观看| 亚洲国产乱码最新视频| 青青草国产成人av片免费| 激情欧美一区二区| 成人午夜电影小说| 欧美亚洲自拍偷拍| 精品免费国产二区三区| 日本一二三四高清不卡| 欧美剧情电影在线观看完整版免费励志电影| 亚洲欧美激情在线| 五月天精品一区二区三区| 国产日产欧美精品一区二区三区| 免费成人你懂的| 成人av网站在线观看免费| 欧美久久一二区| 欧美国产精品一区二区三区| 一区二区三区日韩精品视频| 男人的天堂久久精品| 成人免费高清在线| 在线91免费看| 爽好久久久欧美精品| 国产精品1024| 欧美午夜寂寞影院| 国产视频视频一区| 日本一区中文字幕| 色国产综合视频| 久久久久久免费| 国产日韩欧美精品电影三级在线| 精品久久人人做人人爽| 亚洲综合男人的天堂| 国产美女av一区二区三区| 欧美在线观看视频一区二区三区| 91在线观看美女| 国产婷婷色一区二区三区|