锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
9.2.1聽 鏂扮殑璁板綍闆嗘帴鍙?ResultSet鎺ュ彛)
1 鏂板畾涔変簡鑻ュ共涓父鏁?
榪欎簺甯告暟鐢ㄤ簬鎸囧畾ResultSet鐨勭被鍨?娓告爣縐誨姩鐨勬柟鍚戠瓑鎬ц川 濡備笅鎵紺郝?
public static final int FETCH_FORWARD;
public static final int FETCH_REVERSE;
public static final int FETCH_UNKNOWN;
public static final int TYPE_FORWARD_ONLY;
public static final int TYPE_SCROLL_INSENSITIVE;
public static final int TYPE_SCROLL_SENSITIVE;
public static final int CONCUR_READ_ONLY;
public static final int CONCUR_UPDATABLE;
FETCH_FORWORD 璇ュ父鏁扮殑浣滅敤鏄寚瀹氬鐞嗚褰曢泦涓鐨勯『搴忔槸鐢卞墠鍒板悗 鍗充粠絎竴琛屽紑濮嬪鐞?涓鐩村埌鏈鍚庝竴琛屄?
FETCH_REVERSE 璇ュ父鏁扮殑浣滅敤鏄寚瀹氬鐞嗚褰曢泦涓鐨勯『搴忔槸鐢卞悗鍒板墠 鍗充粠鍚庝竴琛屽紑濮嬪鐞?涓鐩村埌絎竴琛屄?
FETCH_UNKNOWN 璇ュ父鏁扮殑浣滅敤鏄笉鎸囧畾澶勭悊璁板綍闆嗕腑琛岀殑欏哄簭 鐢?JDBC 椹卞姩紼嬪簭鍜屾暟鎹簱緋葷粺鍐沖畾聽
TYPE_FORWARD_ONLY 璇ュ父鏁扮殑浣滅敤鏄寚瀹氭暟鎹簱娓告爣鐨勭Щ鍔ㄦ柟鍚戞槸鍚戝墠 涓嶅厑璁稿悜鍚庣Щ鍔?鍗沖彧鑳戒嬌鐢≧esultSet鎺ュ彛鐨刵ext()鏂規硶 鑰屼笉鑳戒嬌鐢?previous()鏂規硶 鍚﹀垯浼氫駭鐢熼敊璇?
TYPE_SCROLL_INSENSITIVE 璇ュ父鏁扮殑浣滅敤鏄寚瀹氭暟鎹簱娓告爣鍙互鍦ㄨ褰曢泦涓墠鍚?br />縐誨姩 騫朵笖褰撳墠鏁版嵁搴撶敤鎴瘋幏鍙栫殑璁板綍闆嗗鍏朵粬鐢ㄦ埛鐨勬搷浣滀笉鏁忔劅 灝辨槸璇?褰撳墠鐢ㄦ埛姝?br />鍦ㄦ祻瑙堣褰曢泦涓殑鏁版嵁 涓庢鍚屾椂 鍏朵粬鐢ㄦ埛鏇存柊浜嗘暟鎹簱涓殑鏁版嵁 浣嗘槸褰撳墠鐢ㄦ埛鎵鑾?br />鍙栫殑璁板綍闆嗕腑鐨勬暟鎹笉浼氬彈鍒頒換浣曞獎鍝嵚?
TYPE_SCROLL_SENSITIVE 璇ュ父鏁扮殑浣滅敤鏄寚瀹氭暟鎹簱娓告爣鍙互鍦ㄨ褰曢泦涓墠鍚庣Щ鍔?騫朵笖褰撳墠鏁版嵁搴撶敤鎴瘋幏鍙栫殑璁板綍闆嗗鍏朵粬鐢ㄦ埛鐨勬搷浣滄晱鎰?灝辨槸璇?褰撳墠鐢ㄦ埛姝e湪嫻忚璁板綍闆?浣嗘槸鍏跺畠鐢ㄦ埛鐨勬搷浣滀嬌鏁版嵁搴撲腑鐨勬暟鎹彂鐢熶簡鍙樺寲 褰撳墠鐢ㄦ埛鎵鑾峰彇鐨勮褰曢泦涓殑鏁版嵁涔熶細鍚屾鍙戠敓鍙樺寲 榪欐牱鏈夊彲鑳戒細瀵艱嚧闈炲父涓ラ噸鐨勯敊璇駭鐢?寤鴻鎱庨噸浣跨敤璇ュ父鏁奧?
CONCUR_READ_ONLY 璇ュ父鏁扮殑浣滅敤鏄寚瀹氬綋鍓嶈褰曢泦鐨勫崗浣滄柟寮?concurrency mode)涓哄彧璇?涓鏃︿嬌鐢ㄤ簡榪欎釜甯告暟 閭d箞鐢ㄦ埛灝變笉鍙互鏇存柊璁板綍闆嗕腑鐨勬暟鎹?CONCUR_UPDATABLE 璇ュ父鏁扮殑浣滅敤鏄寚瀹氬綋鍓嶈褰曢泦鐨勫崗浣滄柟寮?concurrency mode)涓哄彲浠ユ洿鏂?涓鏃︿嬌鐢ㄤ簡榪欎釜甯告暟 閭d箞鐢ㄦ埛灝卞彲浠ヤ嬌鐢?updateXXX()絳夋柟娉曟洿鏂拌褰曢泦涓殑鏁版嵁聽
2 ResultSet鎺ュ彛鎻愪緵浜嗕竴鏁村鐨勫畾浣嶆柟娉?
榪欎簺鍙互鍦ㄨ褰曢泦涓畾浣嶅埌浠繪剰涓琛?鍏蜂綋鏈壜?
public boolean absolute(int聽 row);聽 璇ユ柟娉曠殑浣滅敤鏄皢璁板綍闆嗕腑鐨勬煇涓琛岃瀹氫負褰撳墠琛?浜﹀嵆灝嗘暟鎹簱娓告爣縐誨姩鍒版寚瀹氱殑琛?鍙傛暟 row鎸囧畾浜嗙洰鏍囪鐨勮鍙?榪欐槸緇濆鐨勮鍙風敱璁板綍闆嗙殑絎竴琛屽紑濮嬭綆?涓嶆槸鐩稿鐨勮鍙仿?
public boolean relative(int聽 rows);聽 璇ユ柟娉曠殑浣滅敤涔熸槸灝嗚褰曢泦涓殑鏌愪竴琛岃瀹氫負褰撳墠琛?浣嗘槸瀹冪殑鍙傛暟 rows琛ㄧず鐩爣琛岀浉瀵逛簬褰撳墠琛岀殑琛屽彿 渚嬪褰撳墠琛屾槸絎?琛?鐜板湪闇瑕佺Щ鍔ㄥ埌絎?琛屽幓 鏃㈠彲浠ヤ嬌鐢╝bsolute()鏂規硶 涔熷彲浠ヤ嬌鐢?relative()鏂規硶 浠g爜濡備笅聽
渚嬄?
rs.absolute(5);
鎴栬?
rs.relative(2);
鍏朵腑rs浠h〃ResultSet鎺ュ彛鐨勫疄渚嬪璞÷?
鍙堝褰撳墠琛屾槸絎?琛?闇瑕佺Щ鍔ㄥ埌絎?3琛屽幓 浠g爜濡備笅聽
渚嬄?
rs.absolute(3);
鎴栬?
rs.relative(-2);
鍏朵腑rs浠h〃ResultSet鎺ュ彛鐨勫疄渚嬪璞÷?
璇昏呴渶瑕佹敞鎰忕殑闂鏄?浼犻掔粰 relative()鏂規硶鐨勫弬鏁?濡傛灉鏄鏁?閭d箞鏁版嵁搴撴父鏍囧悜鍓嶇Щ鍔?濡傛灉鏄礋鏁?閭d箞鏁版嵁搴撴父鏍囧悜鍚庣Щ鍔?
娉ㄦ剰 鍦ㄦ湰绔犱腑鎵璇寸殑鏁版嵁搴撴父鏍囧悜鍓嶇Щ鍔ㄦ槸鎸囧悜琛屽彿澧炲ぇ鐨勬柟鍚戠Щ鍔?鍚戝悗縐誨姩鏄寚鍚戣鍙峰噺灝戠殑鏂瑰悜縐誨姩聽
public boolean first();聽 璇ユ柟娉曠殑浣滅敤鏄皢褰撳墠琛屽畾浣嶅埌鏁版嵁搴撹褰曢泦鐨勭涓琛屄?
public boolean last();聽 璇ユ柟娉曠殑浣滅敤鍒氬ソ鍜?first()鏂規硶鐩稿弽 鏄皢褰撳墠琛屽畾浣嶅埌鏁版嵁搴撹褰曢泦鐨勬渶鍚庝竴琛屄?
public boolean isFirst();聽 璇ユ柟娉曠殑浣滅敤鏄鏌ュ綋鍓嶈鏄惁璁板綍闆嗙殑絎竴琛?濡傛灉鏄繑鍥瀟rue 鍚﹀垯 榪斿洖false聽
public boolean isLast();聽聽 璇ユ柟娉曠殑浣滅敤鏄鏌ュ綋鍓嶈鏄惁璁板綍闆嗙殑鏈鍚庝竴琛?濡傛灉鏄?榪斿洖true 鍚﹀垯 榪斿洖false聽
public void afterLast();聽 璇ユ柟娉曠殑浣滅敤鏄皢鏁版嵁搴撴父鏍囩Щ鍒拌褰曢泦鐨勬渶鍚?浣嶄簬璁板綍闆嗘渶鍚庝竴琛岀殑鍚庨潰 濡傛灉璇ヨ褰曢泦涓嶅寘鍚換浣曠殑琛?璇ユ柟娉曚笉浜х敓浣滅敤聽
public void beforeFirst();聽聽 璇ユ柟娉曠殑浣滅敤鏄皢鏁版嵁搴撴父鏍囩Щ鍒拌褰曢泦鐨勬渶鍓嶉潰 浣嶄簬璁板綍闆嗙涓琛岀殑鍓嶉潰 濡傛灉璁板綍闆嗕笉鍖呭惈浠諱綍鐨勮 璇ユ柟娉曚笉浜х敓浣滅敤聽
public boolean isAfterLast();聽 璇ユ柟娉曟鏌ユ暟鎹簱娓告爣鏄惁澶勪簬璁板綍闆嗙殑鏈鍚庨潰 濡傛灉鏄?榪斿洖true 鍚﹀垯 榪斿洖false聽
public boolean isBeforeFirst();聽 璇ユ柟娉曟鏌ユ暟鎹簱娓告爣鏄惁澶勪簬璁板綍闆嗙殑鏈鍓嶉潰 濡傛灉鏄?榪斿洖true 鍚﹀垯 榪斿洖false聽
public boolean next();聽 璇ユ柟娉曠殑浣滅敤鏄皢鏁版嵁搴撴父鏍囧悜鍓嶇Щ鍔ㄤ竴浣?浣垮緱涓嬩竴琛屾垚涓哄綋鍓嶈 褰撳垰鍒氭墦寮璁板綍闆嗗璞℃椂 鏁版嵁搴撴父鏍囩殑浣嶇疆鍦ㄨ褰曢泦鐨勬渶鍓嶉潰 絎竴嬈′嬌鐢?next()鏂規硶 灝嗕細浣挎暟鎹簱娓告爣瀹氫綅鍒拌褰曢泦鐨勭涓琛?絎簩嬈′嬌鐢?next()鏂規硶 灝嗕細浣挎暟鎹簱娓告爣瀹氫綅鍒拌褰曢泦鐨勭浜岃 浠ユ綾繪帹聽
娉ㄦ剰 濡傛灉鍦ㄥ綋鍓嶈鎵撳紑浜嗕竴涓緭鍏ユ祦(Input Stream) 閭d箞鍐嶆浣跨敤 next()鏂規硶鏃跺皢浼氳嚜鍔ㄥ叧闂杈撳叆嫻伮?
public boolean previous();聽 璇ユ柟娉曠殑浣滅敤鏄皢鏁版嵁搴撴父鏍囧悜鍚庣Щ鍔ㄤ竴浣?浣垮緱涓婁竴琛屾垚涓哄綋鍓嶈聽
3 ResultSet鎺ュ彛娣誨姞浜嗗琛屾搷浣滅殑鏀寔
浣跨敤JDBC API 2.0 涓嶄粎鍙互浠繪剰灝嗘暟鎹簱娓告爣瀹氫綅鍒拌褰曢泦涓殑鐗瑰畾琛?鑰屼笖榪樺彲浠ヤ嬌鐢≧esultSet鎺ュ彛鏂板畾涔夌殑涓濂楁柟娉曟洿鏂板綋鍓嶈鐨勬暟鎹?鍦ㄤ互鍓?濡傛灉Java紼嬪簭鍛樺笇鏈涙洿鏂拌褰曢泦涓煇琛岀殑鏁版嵁 蹇呴』鍙戦?SQL 璇彞緇欐暟鎹簱 紼嬪簭鍛橀渶瑕佸湪 Java 浠g爜涓祵鍏ュ啑闀跨殑SQL璇彞 鐢ㄤ互鎵ц UPDATE DELETE INSERT 絳夋暟鎹簱鎿嶄綔 浣嗘槸 褰揓DBC API 2.0 鍑虹幇鏃?涓鍒囧氨閮芥敼鍙樹簡 紼嬪簭鍛樺凡緇忓彲浠ラ儴鍒嗘姏寮 SQL璇█ 浜彈Java緙栫▼鐨勪箰瓚d簡 ResultSet鎺ュ彛涓柊娣誨姞鐨勯儴鍒嗘柟娉曞涓嬫墍紺郝?
public boolean rowDeleted();聽 濡傛灉褰撳墠璁板綍闆嗙殑鏌愯琚垹闄や簡 閭d箞璁板綍闆嗕腑灝嗕細鐣?br />鍑轟竴涓┖浣?璋冪敤rowDeleted()鏂規硶 濡傛灉鎺㈡祴鍒扮┖浣嶇殑瀛樺湪 閭d箞灝辮繑鍥?true 濡傛灉娌℃湁鎺㈡祴鍒扮┖浣嶇殑瀛樺湪 灝辮繑鍥瀎alse鍊悸?
public boolean rowInserted();聽聽 濡傛灉褰撳墠璁板綍闆嗕腑鎻掑叆浜嗕竴涓柊琛?璇ユ柟娉曞皢榪斿洖true 鍚﹀垯榪斿洖false聽
public boolean rowUpdated();聽聽 濡傛灉褰撳墠璁板綍闆嗙殑褰撳墠琛岀殑鏁版嵁琚洿鏂?璇ユ柟娉曡繑鍥瀟rue 鍚﹀垯榪斿洖false聽
public void insertRow();聽聽 璇ユ柟娉曞皢鎵ц鎻掑叆涓涓柊琛屽埌褰撳墠璁板綍闆嗙殑鎿嶄綔聽
public void updateRow();聽聽 璇ユ柟娉曞皢鏇存柊褰撳墠璁板綍闆嗗綋鍓嶈鐨勬暟鎹?
public void deleteRow();聽 璇ユ柟娉曞皢鍒犻櫎褰撳墠璁板綍闆嗙殑褰撳墠琛屄?
public void updateString(int columnIndex String x);聽 璇ユ柟娉曟洿鏂板綋鍓嶈褰曢泦褰撳墠琛屾煇鍒楃殑鍊?璇ュ垪鐨勬暟鎹被鍨嬫槸 String(鎸?Java 鏁版嵁綾誨瀷鏄?String 涓庝箣瀵瑰簲鐨?JDBC 鏁版嵁綾誨瀷鏄疺ARCHAR鎴朜VARCHAR 絳夋暟鎹被鍨? 璇ユ柟娉曠殑鍙傛暟 columnIndex鎸囧畾鎵瑕佹洿鏂扮殑鍒楃殑鍒楃儲寮?絎竴鍒楃殑鍒楃儲寮曟槸 1 浠ユ綾繪帹 絎簩涓弬鏁?x 浠h〃鏂扮殑鍊?榪欎釜鏂規硶騫朵笉鎵ц鏁版嵁搴撴搷浣?闇瑕佹墽琛?insertRow()鏂規硶鎴栬?updateRow()鏂規硶浠ュ悗 璁板綍闆嗗拰鏁版嵁搴撲腑鐨勬暟鎹墠鑳藉鐪熸鏇存柊聽
public void updateString(String聽聽聽 columnName String聽聽聽 x);聽 璇ユ柟娉曞拰涓婇潰浠嬬粛鐨勫悓鍚嶆柟娉曞樊涓嶅 涓嶈繃璇ユ柟娉曠殑絎竴涓弬鏁版槸 columnName 浠h〃闇瑕佹洿鏂扮殑鍒楃殑鍒楀悕 鑰屼笉鏄痗olumnIndex聽
ResultSet 鎺ュ彛涓繕瀹氫箟浜嗗緢澶氫釜 updateXXX()鏂規硶 閮藉拰涓婇潰鐨勪袱涓柟娉曠浉綾諱技 鐢變簬綃囧箙鐨勫師鍥?鍦ㄨ繖閲屽氨涓嶈緇嗘弿榪頒簡 瀵規鎰熷叴瓚g殑璇昏?鍙互鍙傝冪浉鍏崇殑鏂囩尞聽
寰鏁版嵁搴撳綋鍓嶈褰曢泦鎻掑叆鏂拌鐨勬搷浣滄祦紼嬪涓嬄?
1 璋冪敤moveToInsertRow()鏂規硶聽
2 璋冪敤updateXXX()鏂規硶 鎸囧畾鎻掑叆琛屽悇鍒楃殑鍊悸?
3 璋冪敤insertRow()鏂規硶 寰鏁版嵁搴撲腑鎻掑叆鏂扮殑琛屄?
鏇存柊鏁版嵁搴撲腑鏌愪釜璁板綍鐨勫?鏌愯鐨勫?鐨勬柟娉曟槸聽
1 瀹氫綅鍒伴渶瑕佷慨鏀圭殑琛?浣跨敤 absolute() relative()絳夋柟娉曞畾浣?聽
2 浣跨敤鐩稿簲updateXXX()鏂規硶璁懼畾鏌愯鏌愬垪鐨勬柊鍊?XXX 鎵浠h〃鐨凧ava 鏁版嵁綾誨瀷
蹇呴』鍙互鏄犲皠涓烘煇鍒楃殑JDBC鏁版嵁綾誨瀷 濡傛灉甯屾湜rollback璇ラ」鎿嶄綔 璇峰啀璋冪敤updateRow()鏂規硶浠ュ墠浣跨敤cancelRowUpdates()鏂規硶 榪欎釜鏂規硶鍙互灝嗘煇琛屾煇鍒楃殑鍊煎鍘熉?
3 浣跨敤updateRow()鏂規硶 瀹屾垚 UPDATE 鐨勬搷浣溌?
鍒犻櫎璁板綍闆嗕腑鏌愯(浜﹀嵆鍒犻櫎鏌愪釜璁板綍)鐨勬柟娉暵?
1 瀹氫綅鍒伴渶瑕佷慨鏀圭殑琛?浣跨敤 absolute() relative()絳夋柟娉曞畾浣?聽
2 浣跨敤deleteRow()鏂規硶聽
4 鏂扮殑ResultSet鎺ュ彛娣誨姞浜嗗 SQL3鏁版嵁綾誨瀷鐨勬敮鎸?
5 鑾峰彇璁板綍闆嗚鏁扮殑鏂規硶
1 棣栧厛浣跨敤last()鏂規硶 灝嗘暟鎹簱娓告爣瀹氫綅鍒拌褰曢泦鐨勬渶鍚庝竴琛屄?
2 浣跨敤 getRow()鏂規硶 榪斿洖璁板綍闆嗘渶鍚庝竴琛岀殑琛岀儲寮?璇ョ儲寮曞氨絳変簬璁板綍闆嗘墍鍖?br />鍚褰曠殑涓暟 涔熷氨鏄褰曢泦鐨勮鏁?
9.2.2聽 鏂扮殑SQL璇彞鎺ュ彛(Statement 鎺ュ彛)
鍦↗DBC API 2.0 涓?SQL璇彞鎺ュ彛(Statement鎺ュ彛)涔熸湁浜嗗緢澶х殑鏀硅繘 鍔熻兘鏇村姞寮哄ぇ聽 PreparedStatement鎺ュ彛鍜孋allableStatement鎺ュ彛閮界戶鎵夸簡 Statement鎺ュ彛 鍥犳鏈皬鑺備篃浠嬬粛榪欎袱涓帴鍙g浉瀵逛簬 JDBC API 1.0鐨勬敼榪涗箣澶?鍥犱負涓婅堪鐨勪笁涓帴鍙i兘鐢盋onnection鎺ュ彛鐨勬柟娉曞垱寤?鎵浠ユ湰灝忚妭涔熼『渚挎彁涓鎻?Connection鎺ュ彛聽
1 Statement鎺ュ彛 CallableStatement鎺ュ彛 PreparesStatement鎺ュ彛鐨勫垱寤?
榪欎笁涓帴鍙e垎鍒敱Connection鎺ュ彛鐨刢reateStatement() prepareStatement() prepareCall()絳夋柟娉曞垱寤?榪欏嚑涓柟娉曠殑瀹氫箟濡備笅聽
public Statement createStatement();
public Statement createStatement(int resultSetType int resultSetConcurrency);
public CallableStatement prepareCall(String sql);
public CallableStatement prepareCall(String sql int resultSetType聽
int resultSetConcurrency);
public PreparedStatement prepareStatement(String sql);
public PreparedStatement prepareStatement(String sql int resultSetType聽
聽int resultSetConcurrency);
涓婇潰鍒楀嚭鐨勬柟娉曚腑
鍙傛暟sql浠h〃闇瑕佹墽琛岀殑 SQL璇彞聽 榪欎簺 SQL璇彞涓嶆槸瀹屾暣鐨?br />SQL 璇彞 涓鑸甫鏈?IN/OUT/INOUT 鍙傛暟 鍙傛暟 resultSetType 浠h〃璇ユ柟娉曞垱寤虹殑 SQL 璇彞鎺ュ彛鎵ц SQL 璇彞鎵榪斿洖鐨?ResultSet 鐨勭被鍨?渚嬪 鏄惁鍏佽鏁版嵁搴撴父鏍囧墠鍚庣Щ鍔ㄦ槸鍚﹀鍏朵粬鐢ㄦ埛鐨勬暟鎹簱鏇存柊鎿嶄綔鏁忔劅絳?瀹冧滑閮芥槸涓浜涙暣鍨嬬殑甯告暟 鍦≧esultSet鎺ュ彛涓畾涔変簡
鍙傛暟 resultSetConcurrency 浠h〃璇ユ柟娉曞垱寤虹殑SQL璇彞鎺ュ彛鎵цSQL璇彞鎵榪斿洖鐨凴esultSet鐨勫崗鍚屾ā寮?濡傚厑璁告洿鏂拌褰曢泦鐨勬暟鎹?鎴栬呬粎浠呭彧璇?涓嶈兘鏇存柊絳?瀹冧滑涔熸槸涓浜涙暣鍨嬬殑甯告暟 鍦≧esultSet鎺ュ彛涓畾涔変簡
渚嬄?
stmt=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE聽
ResultSet.CONCUR_UPDATABLE);
涓婇潰鐨勪唬鐮佸垱寤轟簡涓涓?SQL璇彞鎺ュ彛(Statement)鐨勫疄渚嬪璞?璇ュ疄渚嬪璞″厑璁稿畠鎵ц
SQL璇彞鎵榪斿洖鐨勮褰曢泦涓殑鏁版嵁搴撴父鏍囧墠鍚庣Щ鍔?鍏佽鏇存柊璁板綍闆嗕腑鐨勬暟鎹?
2 鏀寔鎵規搷浣?
Statement鎺ュ彛 PreparedStatement鎺ュ彛 CallableStatement鎺ュ彛閮芥敮鎸佹暟鎹簱鎵規搷浣滃氨鏄皢鑻ュ共涓?SQL 璇彞娣誨姞鍒頒竴涓?SQL 璇彞鍧?Batch)涓?涓騫跺彂閫佸埌鏁版嵁搴撴湇鍔″櫒鍘繪暟鎹簱寮曟搸鎵ц瀹?SQL璇彞鍧椾腑鐨勮鍙ュ悗 浼氬皢鎵鏈夌殑緇撴灉涓騫惰繑鍥?榪欑鍔熻兘鐗瑰埆閫傜敤浜庡ぇ鎵歸噺鐨勬暟鎹簱 INSERT 鎿嶄綔 涓轟簡瀹炵幇榪欐牱鐨勫姛鑳?蹇呴』鐢ㄥ埌鐨?Statement鎺ュ彛鐨勬柟娉?br />濡備笅鎵紺郝?
public void addBatch(String聽 sql);聽 璇ユ柟娉曠敤浜庡皢SQL璇彞娣誨姞鍒?SQL璇彞鍧椾腑聽
public void clearBatch();聽聽 璇ユ柟娉曠敤浜庡皢SQL璇彞鍧椾腑鐨勬墍鏈塖QL璇彞鍏ㄩ儴鍒犻櫎聽
public int[] executeBatch();聽 璇ユ柟娉曠敤浜庡皢 SQL璇彞鍧楀彂閫佸埌鏁版嵁搴撴湇鍔″櫒鍘?騫舵墽
琛屽畠 榪斿洖鐨勭粨鏋滄槸涓涓暣鍨嬫暟緇?鏁扮粍涓殑鍏冪礌鏄暟鎹簱鏈嶅姟鍣ㄦ墽琛?SQL璇彞鍧椾腑SQL璇彞鎵榪斿洖鐨勬洿鏂拌鏁?SQL璇彞鍧椾腑鍚湁澶氬皯涓?SQL璇彞 榪斿洖鐨勬暣琛屾暟緇勪腑灝卞惈鏈夊灝戜釜鍏冪礌聽
浣跨敤JDBC API鎵ц鏁版嵁搴撴壒鎿嶄綔鐨勬柟娉曟槸聽
1 鍒涘緩Statement鎺ュ彛鐨勫疄渚嬪璞÷?
2 璋冪敤addBatch()鏂規硶 寰SQL璇彞鍧椾腑娣誨姞鑻ュ共涓猄QL璇彞聽
3 浣跨敤executeBatch()鏂規硶 瀹屾垚鏁版嵁搴撴壒鎿嶄綔
涓婇潰浠嬬粛鐨勬墽琛屾暟鎹簱鎵規搷浣滅殑鏂規硶浠呬粎閫傜敤浜?Statement 鎺ュ彛 涓嶉傜敤浜?br />PreparedStatement鎺ュ彛 CallableStatement鎺ュ彛 鍚庨潰涓や釜鎺ュ彛瀹氫箟浜嗘柊鐨?addBatch()鏂規硶
璇ユ柟娉曚笉闇瑕佷換浣曞弬鏁?浣嗘槸鍦⊿tatement鎺ュ彛涓畾涔夌殑 addBatch()鏂規硶鍗撮渶瑕佸弬鏁?鍙傛暟鏄竴涓猄QL璇彞 鏁版嵁綾誨瀷鏄疭tring聽
鍦?PreparedStatement鎺ュ彛 CallableStatement鎺ュ彛涓疄鐜版暟鎹簱鎵規搷浣滅殑鏂規硶鏄?
1 鍒涘緩PreparedStatement鎺ュ彛鎴栬匔allableStatement鎺ュ彛鐨勫疄渚嬪璞÷?
2 浣跨敤PreparedStatement 鎺ュ彛涓畾涔夌殑 setXXX()鏂規硶璁懼畾 SQL璇彞(璇?SQL璇彞鏄湪鍒涘緩 PreparedStatement 鎺ュ彛鎴栬?CallableStatement 鎺ュ彛鐨勫疄渚嬪璞℃椂鍒濆鍖栫殑)鐨処N/OUT/INOUT 鍙傛暟鐨勫?CallableStatement 鎺ュ彛騫舵病鏈夊畾涔変換浣?setXXX()鏂規硶 瀹冪殑setXXX()鏂規硶鍏ㄩ儴緇ф壙鑷狿reparedStatement鎺ュ彛)聽聽
3 浣跨敤executeBatch()鏂規硶璇ユ柟娉曞湪Statement鎺ュ彛涓畾涔変笉榪嘝reparedStatement
鎺ュ彛鍜孋allableStatement鎺ュ彛閮界戶鎵夸簡榪欎釜鏂規硶聽