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

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

?? jdbctm 指南:入門5 - resultset.htm

?? 寫給JSP初級程序員的書
?? HTM
字號:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0056)http://eps.www85.cn4e.com/java/article/devshow.asp?id=99 -->
<HTML><HEAD><title>csdn_JDBCTM 指南:入門5 - ResultSet</TITLE>
<META content="text/html; charset=gb2312" http-equiv=Content-Type>
<STYLE type=text/css>TD {
	FONT-FAMILY: "Verdana", "Arial", "宋體"; FONT-SIZE: 9pt
}
A {
	COLOR: #660000; TEXT-DECORATION: underline
}
A:hover {
	COLOR: #660000; TEXT-DECORATION: none
}
.line {
	LINE-HEIGHT: 14pt
}
</STYLE>

<META content="MSHTML 5.00.2920.0" name=GENERATOR></HEAD>
<BODY bgColor=#ffffff text=#000000>

  <table><tbody>
  <TR>
    <TD height=21>
      <DIV align=center><B><FONT size=3>JDBCTM 指南:入門5 - ResultSet 
      <BR><FONT size=2> </FONT></FONT></FONT>
      <HR align=center color=#cccccc noShade SIZE=1>
      </DIV></TD></TR>
  <TR>
    <TD class=line><FONT 
      color=#333300>5&nbsp;-&nbsp;ResultSet<BR>本概述是從《JDBCTM&nbsp;Database&nbsp;Access&nbsp;from&nbsp;JavaTM:&nbsp;A&nbsp;Tutorial&nbsp;and&nbsp;Annotated&nbsp;Reference&nbsp;》這本書中摘引來的。JavaSoft&nbsp;目前正在準備這本書。這是一本教程,同時也是&nbsp;JDBC&nbsp;的重要參考手冊,它將作為&nbsp;Java&nbsp;系列的組成部份在&nbsp;1997&nbsp;年春季由&nbsp;Addison-Wesley&nbsp;出版公司出版。&nbsp;<BR><BR><BR>5.1&nbsp;概述<BR>ResultSet&nbsp;包含符合&nbsp;SQL&nbsp;語句中條件的所有行,并且它通過一套&nbsp;get&nbsp;方法(這些&nbsp;get&nbsp;方法可以訪問當前行中的不同列)提供了對這些行中數據的訪問。ResultSet.next&nbsp;方法用于移動到&nbsp;ResultSet&nbsp;中的下一行,使下一行成為當前行。<BR><BR>結果集一般是一個表,其中有查詢所返回的列標題及相應的值。例如,如果查詢為&nbsp;SELECT&nbsp;a,&nbsp;b,&nbsp;c&nbsp;FROM&nbsp;Table1,則結果集將具有如下形式:&nbsp;<BR><BR><BR>a&nbsp;b&nbsp;c<BR>--------&nbsp;---------&nbsp;--------<BR>12345&nbsp;Cupertino&nbsp;CA<BR>83472&nbsp;Redmond&nbsp;WA<BR>83492&nbsp;Boston&nbsp;MA<BR><BR><BR>下面的代碼段是執行&nbsp;SQL&nbsp;語句的示例。該&nbsp;SQL&nbsp;語句將返回行集合,其中列&nbsp;1&nbsp;為&nbsp;int,列&nbsp;2&nbsp;為&nbsp;String,而列&nbsp;3&nbsp;則為字節數組:&nbsp;<BR><BR><BR>java.sql.Statement&nbsp;stmt&nbsp;=&nbsp;conn.createStatement();<BR>ResultSet&nbsp;r&nbsp;=&nbsp;stmt.executeQuery("SELECT&nbsp;a,&nbsp;b,&nbsp;c&nbsp;FROM&nbsp;Table1");<BR>while&nbsp;(r.next())<BR>{<BR>//&nbsp;打印當前行的值。<BR>int&nbsp;i&nbsp;=&nbsp;r.getInt("a");<BR>String&nbsp;s&nbsp;=&nbsp;r.getString("b");<BR>float&nbsp;f&nbsp;=&nbsp;r.getFloat("c");<BR>System.out.println("ROW&nbsp;=&nbsp;"&nbsp;+&nbsp;i&nbsp;+&nbsp;"&nbsp;"&nbsp;+&nbsp;s&nbsp;+&nbsp;"&nbsp;"&nbsp;+&nbsp;f);<BR>}<BR><BR>5.1.1&nbsp;行和光標<BR>ResultSet&nbsp;維護指向其當前數據行的光標。每調用一次&nbsp;next&nbsp;方法,光標向下移動一行。最初它位于第一行之前,因此第一次調用&nbsp;next&nbsp;將把光標置于第一行上,使它成為當前行。隨著每次調用&nbsp;next&nbsp;導致光標向下移動一行,按照從上至下的次序獲取&nbsp;ResultSet&nbsp;行。<BR><BR>在&nbsp;ResultSet&nbsp;對象或其父輩&nbsp;Statement&nbsp;對象關閉之前,光標一直保持有效。<BR><BR>在&nbsp;SQL&nbsp;中,結果表的光標是有名字的。如果數據庫允許定位更新或定位刪除,則需要將光標的名字作為參數提供給更新或刪除命令??赏ㄟ^調用方法&nbsp;getCursorName&nbsp;獲得光標名。<BR><BR>注意:不是所有的&nbsp;DBMS&nbsp;都支持定位更新和刪除??墒褂?amp;nbsp;DatabaseMetaData.supportsPositionedDelete&nbsp;和&nbsp;supportsPositionedUpdate&nbsp;方法來檢查特定連接是否支持這些操作。當支持這些操作時,DBMS/驅動程序必須確保適當鎖定選定行,以使定位更新不會導致更新異?;蚱渌l問題。<BR><BR><BR>5.1.2&nbsp;列<BR>方法&nbsp;getXXX&nbsp;提供了獲取當前行中某列值的途徑。在每一行內,可按任何次序獲取列值。但為了保證可移植性,應該從左至右獲取列值,并且一次性地讀取列值。<BR><BR>列名或列號可用于標識要從中獲取數據的列。例如,如果&nbsp;ResultSet&nbsp;對象&nbsp;rs&nbsp;的第二列名為“title”,并將值存儲為字符串,則下列任一代碼將獲取存儲在該列中的值:&nbsp;<BR><BR>String&nbsp;s&nbsp;=&nbsp;rs.getString("title");<BR>String&nbsp;s&nbsp;=&nbsp;rs.getString(2);<BR><BR>注意列是從左至右編號的,并且從列&nbsp;1&nbsp;開始。同時,用作&nbsp;getXXX&nbsp;方法的輸入的列名不區分大小寫。<BR><BR>提供使用列名這個選項的目的是為了讓在查詢中指定列名的用戶可使用相同的名字作為&nbsp;getXXX&nbsp;方法的參數。另一方面,如果&nbsp;select&nbsp;語句未指定列名(例如在“select&nbsp;*&nbsp;from&nbsp;table1”中或列是導出的時),則應該使用列號。這些情況下,用戶將無法確切知道列名。<BR><BR>有些情況下,SQL&nbsp;查詢返回的結果集中可能有多個列具有相同的名字。如果列名用作&nbsp;getXXX&nbsp;方法的參數,則&nbsp;getXXX&nbsp;將返回第一個匹配列名的值。因而,如果多個列具有相同的名字,則需要使用列索引來確保檢索了正確的列值。這時,使用列號效率要稍微高一些。<BR><BR>關于&nbsp;ResultSet&nbsp;中列的信息,可通過調用方法&nbsp;ResultSet.getMetaData&nbsp;得到。返回的&nbsp;ResultSetMetaData&nbsp;對象將給出其&nbsp;ResultSet&nbsp;對象各列的編號、類型和屬性。<BR><BR>如果列名已知,但不知其索引,則可用方法&nbsp;findColumn&nbsp;得到其列號。<BR><BR><BR>5.1.3&nbsp;數據類型和轉換<BR>對于&nbsp;getXXX&nbsp;方法,JDBC&nbsp;驅動程序試圖將基本數據轉換成指定&nbsp;Java&nbsp;類型,然后返回適合的&nbsp;Java&nbsp;值。例如,如果&nbsp;getXXX&nbsp;方法為&nbsp;getString,而基本數據庫中數據類型為&nbsp;VARCHAR,則&nbsp;JDBC&nbsp;驅動程序將把&nbsp;VARCHAR&nbsp;轉換成&nbsp;Java&nbsp;String。getString&nbsp;的返回值將為&nbsp;Java&nbsp;String&nbsp;對象。<BR><BR>下表顯示了允許用&nbsp;getXXX&nbsp;獲取的&nbsp;JDBC&nbsp;類型及推薦用它獲取的&nbsp;JDBC&nbsp;類型(通用&nbsp;SQL&nbsp;類型)。小寫的&nbsp;x&nbsp;表示允許&nbsp;getXXX&nbsp;方法獲取該數據類型;大寫的&nbsp;X&nbsp;表示對該數據類型推薦使用&nbsp;getXXX&nbsp;方法。例如,除了&nbsp;getBytes&nbsp;和&nbsp;getBinaryStream&nbsp;之外的任何&nbsp;getXXX&nbsp;方法都可用來獲取&nbsp;LONGVARCHAR&nbsp;值,但是推薦根據返回的數據類型使用&nbsp;getAsciiStream&nbsp;或&nbsp;getUnicodeStream&nbsp;方法。方法&nbsp;getObject&nbsp;將任何數據類型返回為&nbsp;Java&nbsp;Object。當基本數據類型是特定于數據庫的抽象類型或當通用應用程序需要接受任何數據類型時,它是非常有用的。<BR><BR>可使用&nbsp;ResultSet.getXXX&nbsp;方法獲取常見的&nbsp;JDBC&nbsp;數據類型。&nbsp;<BR><BR><BR>5.1.4&nbsp;對非常大的行值使用流<BR>ResultSet&nbsp;可以獲取任意大的&nbsp;LONGVARBINARY&nbsp;或&nbsp;LONGVARCHAR&nbsp;數據。方法&nbsp;getBytes&nbsp;和&nbsp;getString&nbsp;將數據返回為大的塊(最大為&nbsp;Statement.getMaxFieldSize&nbsp;的返回值)。但是,以較小的固定塊獲取非常大的數據可能會更方便,而這可通過讓&nbsp;ResultSet&nbsp;類返回&nbsp;java.io.Input&nbsp;流來完成。從該流中可分塊讀取數據。注意:必須立即訪問這些流,因為在下一次對&nbsp;ResultSet&nbsp;調用&nbsp;getXXX&nbsp;時它們將自動關閉(這是由于基本實現對大塊數據訪問有限制)。&nbsp;<BR><BR>JDBC&nbsp;API&nbsp;具有三個獲取流的方法,分別具有不同的返回值:&nbsp;<BR><BR><BR>getBinaryStream&nbsp;返回只提供數據庫原字節而不進行任何轉換的流。<BR><BR><BR>getAsciiStream&nbsp;返回提供單字節&nbsp;ASCII&nbsp;字符的流。<BR><BR><BR>getUnicodeStream&nbsp;返回提供雙字節&nbsp;Unicode&nbsp;字符的流。<BR><BR><BR>注意:它不同于&nbsp;Java&nbsp;流,后者返回無類型字節并可(例如)通用于&nbsp;ASCII&nbsp;和&nbsp;Unicode&nbsp;字符。<BR><BR>下列代碼演示了&nbsp;getAsciiStream&nbsp;的用法:&nbsp;<BR><BR>java.sql.Statement&nbsp;stmt&nbsp;=&nbsp;con.createStatement();<BR>ResultSet&nbsp;r&nbsp;=&nbsp;stmt.executeQuery("SELECT&nbsp;x&nbsp;FROM&nbsp;Table2");<BR>//&nbsp;現在以&nbsp;4K&nbsp;塊大小獲取列&nbsp;1&nbsp;結果:<BR>byte&nbsp;buff&nbsp;=&nbsp;new&nbsp;byte[4096];<BR>while&nbsp;(r.next())&nbsp;{<BR>Java.io.InputStream&nbsp;fin&nbsp;=&nbsp;r.getAsciiStream(1);<BR>for&nbsp;(;;)&nbsp;{<BR>int&nbsp;size&nbsp;=&nbsp;fin.read(buff);<BR>if&nbsp;(size&nbsp;==&nbsp;-1)&nbsp;{&nbsp;//&nbsp;到達流末尾<BR>break;<BR>}<BR>//&nbsp;將新填充的緩沖區發送到&nbsp;ASCII&nbsp;輸出流:<BR>output.write(buff,&nbsp;0,&nbsp;size);<BR>}<BR>}<BR><BR>5.1.5&nbsp;NULL&nbsp;結果值<BR>要確定給定結果值是否是&nbsp;JDBC&nbsp;NULL,必須先讀取該列,然后使用&nbsp;ResultSet.wasNull&nbsp;方法檢查該次讀取是否返回&nbsp;JDBC&nbsp;NULL。<BR><BR>當使用&nbsp;ResultSet.getXXX&nbsp;方法讀取&nbsp;JDBC&nbsp;NULL&nbsp;時,方法&nbsp;wasNull&nbsp;將返回下列值之一:&nbsp;<BR><BR><BR>Java&nbsp;null&nbsp;值:對于返回&nbsp;Java&nbsp;對象的&nbsp;getXXX&nbsp;方法(例如&nbsp;getString、getBigDecimal、getBytes、getDate、getTime、getTimestamp、getAsciiStream、getUnicodeStream、getBinaryStream、getObject&nbsp;等)。<BR><BR><BR>零值:對于&nbsp;getByte、getShort、getInt、getLong、getFloat&nbsp;和&nbsp;getDouble。<BR><BR><BR>false&nbsp;值:對于&nbsp;getBoolean。<BR><BR><BR>5.1.6&nbsp;可選結果集或多結果集<BR>通常使用&nbsp;executeQuery(它返回單個&nbsp;ResultSet)或&nbsp;executeUpdate(它可用于任何數據庫修改語句,并返回更新行數)可執行&nbsp;SQL&nbsp;語句。但有些情況下,應用程序在執行語句之前不知道該語句是否返回結果集。此外,有些已存儲過程可能返回幾個不同的結果集和/或更新計數。<BR><BR>為了適應這些情況,JDBC&nbsp;提供了一種機制,允許應用程序執行語句,然后處理由結果集和更新計數組成的任意集合。這種機制的原理是首先調用一個完全通用的&nbsp;execute&nbsp;方法,然后調用另外三個方法,getResultSet、getUpdateCount&nbsp;和&nbsp;getMoreResults。這些方法允許應用程序一次一個地研究語句結果,并確定給定結果是&nbsp;ResultSet&nbsp;還是更新計數。<BR><BR>用戶不必關閉&nbsp;ResultSet;當產生它的&nbsp;Statement&nbsp;關閉、重新執行或用于從多結果序列中獲取下一個結果時,該&nbsp;ResultSet&nbsp;將被&nbsp;Statement&nbsp;自動關閉。<BR></FONT></TD></TR>
  <TR>
    <TD height=5>
      <HR align=center color=#cccccc noShade SIZE=1>
    </TD></TR></TBODY></BODY></HTML>

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91国产丝袜在线播放| 国产二区国产一区在线观看| 国产日韩欧美激情| 日韩一区二区三区视频在线| 99re热视频这里只精品| 国产成人免费9x9x人网站视频| 日韩电影一二三区| 有码一区二区三区| 一区精品在线播放| 国产精品情趣视频| 久久久精品国产免大香伊| 欧美大片拔萝卜| 亚洲精品一区二区三区在线观看| 欧美久久久影院| 在线播放一区二区三区| 在线91免费看| 欧美电视剧免费观看| 亚洲精品在线观| 国产日韩欧美精品一区| 中文字幕在线观看一区| 亚洲免费观看高清完整版在线观看熊 | www.亚洲色图.com| 99麻豆久久久国产精品免费| 成人理论电影网| 91免费小视频| 欧美一区二区三区视频免费| 日韩欧美在线网站| 国产精品伦一区二区三级视频| 亚洲国产精品激情在线观看| 亚洲欧美在线观看| 亚洲成人精品影院| 国产一区二区在线观看视频| aaa国产一区| 制服丝袜亚洲色图| 中文在线资源观看网站视频免费不卡| 亚洲欧美日韩国产综合在线| 日韩黄色免费电影| 国产黑丝在线一区二区三区| 在线免费一区三区| 国产日韩欧美综合一区| 一区二区三区美女视频| 韩日av一区二区| 欧美午夜一区二区三区| 久久久久久免费网| 午夜精品久久久久久久久久| 成人网页在线观看| 精品国产乱码久久久久久影片| 亚洲免费观看高清完整版在线观看熊| 国产一区二区三区在线观看精品| 欧美性猛交xxxx黑人交| 国产精品美女一区二区三区 | 欧美日韩在线播放一区| 国产日本欧洲亚洲| 久久成人久久爱| 欧美一区日韩一区| 亚洲国产一区二区视频| 欧美天堂亚洲电影院在线播放| 国产精品拍天天在线| 国产精品小仙女| 精品久久国产字幕高潮| 免费观看成人鲁鲁鲁鲁鲁视频| 欧美精品乱码久久久久久按摩 | 日本sm残虐另类| 91麻豆精品91久久久久同性| 亚洲高清中文字幕| 欧美性色欧美a在线播放| 曰韩精品一区二区| 欧美肥大bbwbbw高潮| 肉色丝袜一区二区| 欧美sm极限捆绑bd| 精品影院一区二区久久久| 精品剧情v国产在线观看在线| 欧美a级一区二区| 日本一区二区免费在线观看视频| 精彩视频一区二区| 中文字幕电影一区| 欧美亚洲尤物久久| 免费人成精品欧美精品| 精品国精品国产尤物美女| 国产91丝袜在线观看| 亚洲视频香蕉人妖| 91精品国产福利在线观看| 黑人精品欧美一区二区蜜桃| 国产精品国产精品国产专区不片| 在线观看av一区| 国内国产精品久久| 中文字幕一区二区三区乱码在线| 色综合色综合色综合色综合色综合| 亚洲成人资源网| 国产视频在线观看一区二区三区| av电影一区二区| 麻豆传媒一区二区三区| 国产精品不卡在线观看| 91精品在线免费观看| 91性感美女视频| 国产高清久久久| 日日嗨av一区二区三区四区| 中文字幕在线不卡一区| 日韩午夜中文字幕| 欧美日韩一区二区欧美激情| 国产.精品.日韩.另类.中文.在线.播放| 亚洲一区二区成人在线观看| 中文字幕第一区第二区| 精品国产乱码久久久久久闺蜜| 在线免费观看日本欧美| 91在线观看下载| 国产成人在线影院| 国产在线精品一区二区| 麻豆一区二区三区| 日本亚洲欧美天堂免费| 亚洲成a人片在线观看中文| 国产精品乱人伦中文| 欧美国产激情二区三区| 国产午夜亚洲精品羞羞网站| 精品国产精品一区二区夜夜嗨| 666欧美在线视频| 在线不卡中文字幕播放| 91精品综合久久久久久| 欧美另类一区二区三区| 欧美狂野另类xxxxoooo| 在线播放中文字幕一区| 日韩视频在线永久播放| 精品久久久久99| 久久久99久久| 亚洲区小说区图片区qvod| 亚洲在线免费播放| 亚洲一区二区成人在线观看| 天天操天天综合网| 国模大尺度一区二区三区| 国精产品一区一区三区mba视频 | 欧美日韩二区三区| 欧美va亚洲va在线观看蝴蝶网| 国产亚洲精品aa午夜观看| 亚洲欧洲一区二区在线播放| 亚洲国产成人av| 国产精品66部| 91成人在线精品| 日日夜夜免费精品| 国产不卡视频在线观看| 欧美亚洲国产一区二区三区va| 欧美一区国产二区| 亚洲日本一区二区三区| 天天爽夜夜爽夜夜爽精品视频| 国产精品一区二区三区乱码 | 91久久香蕉国产日韩欧美9色| 欧美一区二区日韩| 国产日韩视频一区二区三区| 婷婷中文字幕综合| 91在线国产福利| 国产亚洲欧美色| 偷拍与自拍一区| 91福利区一区二区三区| 亚洲国产精品尤物yw在线观看| 国产精品888| 91精品婷婷国产综合久久性色| 亚洲国产高清在线| 黄页网站大全一区二区| 欧美午夜精品一区| 亚洲三级电影全部在线观看高清| 精品一区二区三区久久| 欧美美女一区二区在线观看| 亚洲欧美偷拍卡通变态| 国产成人免费视频网站| www久久精品| 激情综合一区二区三区| 欧美一区二区私人影院日本| 天天av天天翘天天综合网| 91麻豆6部合集magnet| 国产精品欧美一区二区三区| 国产suv精品一区二区三区| 国产无一区二区| 国产精品99久久久久| 欧美国产丝袜视频| 成人a免费在线看| 中文字幕中文字幕一区| 不卡的av电影在线观看| 国产精品久久久一本精品| 国产成人午夜视频| 欧美国产日韩精品免费观看| 成人国产精品免费观看视频| 婷婷综合久久一区二区三区| 韩国成人福利片在线播放| 99免费精品在线| 国产精品毛片无遮挡高清| 亚洲成人第一页| 99视频超级精品| 日韩一级完整毛片| 国产精品国产自产拍在线| 日韩中文字幕一区二区三区| 日本高清不卡在线观看| 狠狠色狠狠色合久久伊人| 99久久精品费精品国产一区二区| 久久综合久久综合亚洲| 一区二区三区在线免费播放| 成人av免费在线观看| 国产欧美综合在线| 国内精品久久久久影院一蜜桃| 日韩精品一区二区在线观看| 午夜国产不卡在线观看视频| 91麻豆国产福利精品|