锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
Methods:
1銆?span style="FONT: 7pt 'Times New Roman'">聽 void add 錛?span lang="EN-US">Object obj錛?/span>
寰ArrayList鐨勫璞¢噷澧炲姞涓涓厓绱?span lang="EN-US">
2銆?span style="FONT: 7pt 'Times New Roman'">聽
set
(int聽index,
Object
聽element)
鐢ㄦ寚瀹氱殑鍏冪礌鏇夸唬姝ゅ垪琛ㄤ腑鎸囧畾浣嶇疆涓婄殑鍏冪礌銆?/span>
3銆?span style="FONT: 7pt 'Times New Roman'">聽
int size
錛堬級
鑾峰緱ArrayList鐨勫璞′腑鍏冪礌鐨勪釜鏁般?span lang="EN-US">
4銆?span style="FONT: 7pt 'Times New Roman'">聽
get
錛?span lang="EN-US">int index)
榪斿洖ArrayList鐨勫璞′腑绱㈠紩涓?span lang="EN-US">index鐨勫厓绱犮?span lang="EN-US">
5銆?span style="FONT: 7pt 'Times New Roman'">聽
Object
[]
toArray
錛堬級
灝?span lang="EN-US">ArrayList鐨勫璞′腑鐨勫厓绱犺繑鍥炲埌涓涓璞℃暟緇勪腑銆?span lang="EN-US">
PS
錛?span lang="EN-US">Arrays.asList(Object[] objs);
聽聽聽
榪斿洖涓涓彈鎸囧畾鏁扮粍鏀寔鐨勫浐瀹氬ぇ灝忕殑鍒楄〃銆?/span>
聽聽聽聽
榪欓噷鐨?span lang="EN-US">L鏄氳繃Arrays.asList榪斿洖涓涓帴鍙c傝繖鏃跺?span lang="EN-US">L鐨勯暱搴﹀氨鍥哄畾涓嶈兘鍐嶅彉浜嗭紝涓嶈兘緇?span lang="EN-US">L娣誨姞鍏冪礌浜嗐備絾鏄彲浠ラ氳繃set鏂規硶鏀瑰彉L涓寚瀹氬厓绱犵殑鍊箋?span lang="EN-US">
聽聽聽聽聽
6銆?span style="FONT: 7pt 'Times New Roman'">聽
iterator()
榪斿洖涓涓凱浠e櫒銆傛墍鏈夌戶鎵?span lang="EN-US">Collection鎺ュ彛鐨勬帴鍙f垨鑰呰繖浜涙帴鍙g殑瀹炵幇綾伙紝閮芥湁榪欎釜鏂規硶銆傞氳繃List鎺ュ彛瀵硅薄榪斿洖鐨勮凱浠e櫒娌℃湁瀹炵幇iterator鎺ュ彛涓殑remove鏂規硶銆傚嚒鏄病鏈夊疄鐜?span lang="EN-US">iterator鎺ュ彛涓殑remove鏂規硶錛岄兘浼氭姏鍑轟竴涓?/span>
UnsupportedOperationException
錛堜笉鏀寔鐨勬搷浣滐級寮傚父銆傚錛?/span>
PS
錛氳凱浠e櫒鐨勪綔鐢細
聽聽
浠栧彲浠ヤ互涓縐嶉氱敤鐨勬柟寮忓幓璁塊棶闆嗗悎涓殑鎵鏈夊厓绱犮傚湪ArrayList綾諱腑鍙互閫氳繃get鏂規硶鍘昏闂紝浣嗘槸鏈変簺闆嗗悎鐨勫疄鐜扮被涓茍娌℃湁get鏂規硶銆傝屾垜浠煡閬擄紝鎵鏈夌戶鎵?span lang="EN-US">Collection鎺ュ彛鐨勬帴鍙f垨鑰呰繖浜涙帴鍙g殑瀹炵幇綾伙紝閮藉彲浠ラ氳繃iterator()榪斿洖涓涓凱浠e櫒錛岄偅涔堟垜浠氨鍙互閫氳繃榪唬鍣ㄨ繖縐嶉氱敤鐨勬柟寮忓幓璁塊棶闆嗗悎涓殑鎵鏈夊厓绱犱簡銆傝闂柟娉曞涓嬶細
ArrayList
搴曞眰閲囩敤鏁扮粍瀹屾垚錛岃?span lang="EN-US">LinkedList鍒欐槸浠ヤ竴鑸殑鍙屽悜閾捐〃(double-linked list)瀹屾垚錛屽叾鍐呮瘡涓璞¢櫎浜嗘暟鎹湰韜錛岃繕鏈変袱涓紩鐢紝鍒嗗埆鎸囧悜鍓嶄竴涓厓绱犲拰鍚庝竴涓厓绱犮?span lang="EN-US">
濡傛灉鎴戜滑緇忓父鍦?span lang="EN-US">List鐨勫紑濮嬪澧炲姞鍏冪礌錛屾垨鑰呭湪List涓繘琛屾彃鍏ュ拰鍒犻櫎鎿嶄綔錛屾垜浠簲璇ヤ嬌鐢?span lang="EN-US">LinkedList錛屽惁鍒欑殑璇濓紝浣跨敤ArrayList灝嗘洿鍔犲揩閫熴?span lang="EN-US">
榪欎袱涓被閮戒笉鏄悓姝ョ殑錛屽洜姝や粬浠殑鏁堢巼涔熸瘮杈冮珮銆傚鏋滆瀹炵幇鍚屾錛屽彲浠ヤ嬌鐢?span lang="EN-US">Vector綾伙紝Vector綾諱腑鏈変竴浜涚戶鎵跨殑鎿嶄綔錛屼嬌鐢ㄧ殑鏃跺欒灝忓績錛屽鏋滀笉瀹炵幇鍚屾涓鑸兘涓嶇敤Vector綾匯傝繕鍙互鐢?span lang="EN-US">Collections綾葷殑
synchronized
鐩稿叧鏂規硶瀹炵幇鍚屾錛屼笉榪囨晥鐜囨病鏈?/span>
Vector
綾婚珮銆?span lang="EN-US">
銆銆CallableStatement 瀵硅薄涓烘墍鏈夌殑 DBMS 鎻愪緵浜嗕竴縐嶄互鏍囧噯褰㈠紡璋冪敤宸插偍瀛樿繃紼嬬殑鏂規硶銆傚凡鍌ㄥ瓨榪囩▼鍌ㄥ瓨鍦ㄦ暟鎹簱涓傚宸插偍瀛樿繃紼嬬殑璋冪敤鏄?CallableStatement瀵硅薄鎵鍚殑鍐呭銆傝繖縐嶈皟鐢ㄦ槸鐢ㄤ竴縐嶆崲鐮佽娉曟潵鍐欑殑錛屾湁涓ょ褰㈠紡錛氫竴縐嶅艦寮忓甫緇撴灉鍙傦紝鍙︿竴縐嶅艦寮忎笉甯︾粨鏋滃弬鏁般傜粨鏋滃弬鏁版槸涓縐嶈緭鍑?(OUT) 鍙傛暟錛屾槸宸插偍瀛樿繃紼嬬殑榪斿洖鍊箋備袱縐嶅艦寮忛兘鍙甫鏈夋暟閲忓彲鍙樼殑杈撳叆錛圛N 鍙傛暟錛夈佽緭鍑猴紙OUT 鍙傛暟錛夋垨杈撳叆鍜岃緭鍑猴紙INOUT 鍙傛暟錛夌殑鍙傛暟銆傞棶鍙峰皢鐢ㄤ綔鍙傛暟鐨勫崰浣嶇銆?/font>
聽
聽
銆銆鍦?JDBC 涓皟鐢ㄥ凡鍌ㄥ瓨榪囩▼鐨勮娉曞涓嬫墍紺恒傛敞鎰忥紝鏂規嫭鍙瘋〃紺哄叾闂寸殑鍐呭鏄彲閫夐」錛涙柟鎷彿鏈韓騫朵笉鏄娉曠殑緇勬垚閮ㄤ喚銆?/font>
{call 榪囩▼鍚峓(?, ?, ...)]}
銆銆榪斿洖緇撴灉鍙傛暟鐨勮繃紼嬬殑璇硶涓猴細
{? = call 榪囩▼鍚峓(?, ?, ...)]}
銆銆涓嶅甫鍙傛暟鐨勫凡鍌ㄥ瓨榪囩▼鐨勮娉曠被浼鹼細
{call 榪囩▼鍚峿
銆銆閫氬父錛屽垱寤?CallableStatement 瀵硅薄鐨勪漢搴斿綋鐭ラ亾鎵鐢ㄧ殑 DBMS 鏄敮鎸佸凡鍌ㄥ瓨榪囩▼鐨勶紝騫朵笖鐭ラ亾榪欎簺榪囩▼閮芥槸浜涗粈涔堛傜劧鑰岋紝濡傛灉闇瑕佹鏌ワ紝澶氱DatabaseMetaData 鏂規硶閮藉彲浠ユ彁渚涜繖鏍風殑淇℃伅銆備緥濡傦紝濡傛灉 DBMS 鏀寔宸插偍瀛樿繃紼嬬殑璋冪敤錛屽垯supportsStoredProcedures 鏂規硶灝嗚繑鍥?true錛岃実etProcedures 鏂規硶灝嗚繑鍥炲宸插偍瀛樿繃紼嬬殑鎻忚堪銆侰allableStatement 緇ф壙 Statement 鐨勬柟娉曪紙瀹冧滑鐢ㄤ簬澶勭悊涓鑸殑 SQL 璇彞錛夛紝榪樼戶鎵夸簡 PreparedStatement 鐨勬柟娉曪紙瀹冧滑鐢ㄤ簬澶勭悊 IN 鍙傦級銆?/font>
銆銆CallableStatement 涓畾涔夌殑鎵鏈夋柟娉曢兘鐢ㄤ簬澶勭悊 OUT 鍙傛暟鎴?INOUT 鍙傛暟鐨勮緭鍑洪儴鍒嗭細娉ㄥ唽 OUT 鍙傛暟鐨?JDBC 綾誨瀷錛堜竴鑸?SQL 綾誨瀷錛夈佷粠榪欎簺鍙傛暟涓绱㈢粨鏋滐紝鎴栬呮鏌ユ墍榪斿洖鐨勫兼槸鍚︿負 JDBC NULL銆?/font>
銆銆1銆佸垱寤?CallableStatement 瀵硅薄
銆銆CallableStatement 瀵硅薄鏄敤 Connection 鏂規硶 prepareCall 鍒涘緩鐨勩備笅渚嬪垱寤?CallableStatement 鐨勫疄渚嬶紝鍏朵腑鍚湁瀵瑰凡鍌ㄥ瓨榪囩▼ getTestData 璋冪敤銆傝榪囩▼鏈変袱涓彉閲忥紝浣嗕笉鍚粨鏋滃弬鏁幫細
CallableStatement cstmt = con.prepareCall("{call getTestData(?, ?)}");
銆銆鍏朵腑?鍗犱綅絎︿負IN銆丱UT榪樻槸INOUT鍙傛暟錛屽彇鍐充簬宸插偍瀛樿繃紼媑etTestData銆?/font>
銆銆2銆両N鍜孫UT鍙傛暟
銆銆灝咺N鍙傛暟浼犵粰 CallableStatement 瀵硅薄鏄氳繃 setXXX 鏂規硶瀹屾垚鐨勩傝鏂規硶緇ф壙鑷?PreparedStatement銆傛墍浼犲叆鍙傛暟鐨勭被鍨嬪喅瀹氫簡鎵鐢ㄧ殑setXXX鏂規硶錛堜緥濡傦紝鐢?setFloat 鏉ヤ紶鍏?float 鍊肩瓑錛夈?/font>
銆銆濡傛灉宸插偍瀛樿繃紼嬭繑鍥?OUT 鍙傛暟錛屽垯鍦ㄦ墽琛?CallableStatement 瀵硅薄浠ュ墠蹇呴』鍏堟敞鍐屾瘡涓?OUT 鍙傛暟鐨?JDBC 綾誨瀷錛堣繖鏄繀闇鐨勶紝鍥犱負鏌愪簺 DBMS 瑕佹眰 JDBC 綾誨瀷錛夈傛敞鍐?JDBC 綾誨瀷鏄敤 registerOutParameter 鏂規硶鏉ュ畬鎴愮殑銆傝鍙ユ墽琛屽畬鍚庯紝CallableStatement 鐨?getXXX 鏂規硶灝嗗彇鍥炲弬鏁板箋傛紜殑 getXXX 鏂規硶鏄負鍚勫弬鏁版墍娉ㄥ唽鐨?JDBC 綾誨瀷鎵瀵瑰簲鐨?Java 綾誨瀷銆傛崲璦涔嬶紝 registerOutParameter 浣跨敤鐨勬槸 JDBC 綾誨瀷錛堝洜姝ゅ畠涓庢暟鎹簱榪斿洖鐨?JDBC 綾誨瀷鍖歸厤錛夛紝鑰?getXXX 灝嗕箣杞崲涓?Java 綾誨瀷銆?/font>
銆銆浣滀負紺轟緥錛屼笅榪頒唬鐮佸厛娉ㄥ唽 OUT 鍙傛暟錛屾墽琛岀敱 cstmt 鎵璋冪敤鐨勫凡鍌ㄥ瓨榪囩▼錛岀劧鍚庢绱㈠湪 OUT 鍙傛暟涓繑鍥炵殑鍊箋傛柟娉?getByte 浠庣涓涓?OUT 鍙傛暟涓彇鍑轟竴涓?Java 瀛楄妭錛岃?getBigDecimal 浠庣浜屼釜 OUT 鍙傛暟涓彇鍑轟竴涓?BigDecimal 瀵硅薄錛堝皬鏁扮偣鍚庨潰甯︿笁浣嶆暟錛夛細
CallableStatement cstmt = con.prepareCall("{call getTestData(?, ?)}");
cstmt.registerOutParameter(1, java.sql.Types.TINYINT);
cstmt.registerOutParameter(2, java.sql.Types.DECIMAL, 3);
cstmt.executeQuery();
byte x = cstmt.getByte(1);
java.math.BigDecimal n = cstmt.getBigDecimal(2, 3);
銆銆CallableStatement 涓?ResultSet 涓嶅悓錛屽畠涓嶆彁渚涚敤澧為噺鏂瑰紡媯绱㈠ぇ OUT 鍊肩殑鐗規畩鏈哄埗銆?/font>
3銆両NOUT鍙傛暟
銆銆鏃㈡敮鎸佽緭鍏ュ張鎺ュ彈杈撳嚭鐨勫弬鏁幫紙INOUT 鍙傛暟錛夐櫎浜嗚皟鐢?registerOutParameter 鏂規硶澶栵紝榪樿姹傝皟鐢ㄩ傚綋鐨?setXXX 鏂規硶錛堣鏂規硶鏄粠 PreparedStatement 緇ф壙鏉ョ殑錛夈俿etXXX 鏂規硶灝嗗弬鏁板艱緗負杈撳叆鍙傛暟錛岃?registerOutParameter 鏂規硶灝嗗畠鐨?JDBC 綾誨瀷娉ㄥ唽涓鴻緭鍑哄弬鏁般俿etXXX 鏂規硶鎻愪緵涓涓?Java 鍊鹼紝鑰岄┍鍔ㄧ▼搴忓厛鎶婅繖涓艱漿鎹負 JDBC 鍊鹼紝鐒跺悗灝嗗畠閫佸埌鏁版嵁搴撲腑銆傝繖縐?IN 鍊肩殑 JDBC 綾誨瀷鍜屾彁渚涚粰 registerOutParameter 鏂規硶鐨?JDBC 綾誨瀷搴旇鐩稿悓銆傜劧鍚庯紝瑕佹绱㈣緭鍑哄鹼紝灝辮鐢ㄥ搴旂殑 getXXX 鏂規硶銆備緥濡傦紝Java 綾誨瀷涓篵yte 鐨勫弬鏁板簲璇ヤ嬌鐢ㄦ柟娉?setByte 鏉ヨ祴杈撳叆鍊箋傚簲璇ョ粰registerOutParameter 鎻愪緵綾誨瀷涓?TINYINT 鐨?JDBC 綾誨瀷錛屽悓鏃跺簲浣跨敤 getByte 鏉ユ绱㈣緭鍑哄箋?/font>
銆銆涓嬩緥鍋囪鏈変竴涓凡鍌ㄥ瓨榪囩▼ reviseTotal錛屽叾鍞竴鍙傛暟鏄?INOUT 鍙傛暟銆傛柟娉晄etByte 鎶婃鍙傛暟璁句負 25錛岄┍鍔ㄧ▼搴忓皢鎶婂畠浣滀負 JDBC TINYINT 綾誨瀷閫佸埌鏁版嵁搴撲腑銆傛帴鐫錛宺egisterOutParameter 灝嗚鍙傛暟娉ㄥ唽涓?JDBC TINYINT銆傛墽琛屽畬璇ュ凡鍌ㄥ瓨榪囩▼鍚庯紝灝嗚繑鍥炰竴涓柊鐨?JDBC TINYINT 鍊箋傛柟娉?getByte 灝嗘妸榪欎釜鏂板間綔涓?Java byte 綾誨瀷媯绱€?/font>
CallableStatement cstmt = con.prepareCall("{call reviseTotal(?)}");
cstmt.setByte(1, 25);
cstmt.registerOutParameter(1, java.sql.Types.TINYINT);
cstmt.executeUpdate();
byte x = cstmt.getByte(1);
銆銆4銆佸厛媯绱㈢粨鏋滐紝鍐嶆绱?OUT 鍙傛暟
銆銆鐢變簬鏌愪簺 DBMS 鐨勯檺鍒訛紝涓轟簡瀹炵幇鏈澶х殑鍙Щ妞嶆э紝寤鴻鍏堟绱㈢敱鎵цCallableStatement 瀵硅薄鎵浜х敓鐨勭粨鏋滐紝鐒跺悗鍐嶇敤 CallableStatement.getXXX 鏂規硶鏉ユ绱?OUT 鍙傛暟銆傚鏋?CallableStatement 瀵硅薄榪斿洖澶氫釜 ResultSet 瀵硅薄錛堥氳繃璋冪敤 execute 鏂規硶錛夛紝鍦ㄦ绱?OUT 鍙傛暟鍓嶅簲鍏堟绱㈡墍鏈夌殑緇撴灉銆傝繖縐嶆儏鍐典笅錛屼負紜繚瀵規墍鏈夌殑緇撴灉閮借繘琛屼簡璁塊棶錛屽繀欏誨 Statement 鏂規硶 getResultSet銆乬etUpdateCount 鍜実etMoreResults 榪涜璋冪敤錛岀洿鍒頒笉鍐嶆湁緇撴灉涓烘銆?/font>
銆銆媯绱㈠畬鎵鏈夌殑緇撴灉鍚庯紝灝卞彲鐢?CallableStatement.getXXX 鏂規硶鏉ユ绱?OUT 鍙傛暟涓殑鍊箋?/font>
銆銆5銆佹绱綔涓篛UT鍙傛暟鐨凬ULL鍊?/font>
銆銆榪斿洖鍒?OUT 鍙傛暟涓殑鍊煎彲鑳戒細鏄疛DBC NULL銆傚綋鍑虹幇榪欑鎯呭艦鏃訛紝灝嗗 JDBC NULL 鍊艱繘琛岃漿鎹互浣?getXXX 鏂規硶鎵榪斿洖鐨勫間負 null銆? 鎴?false錛岃繖鍙栧喅浜巊etXXX 鏂規硶綾誨瀷銆傚浜?ResultSet 瀵硅薄錛岃鐭ラ亾0鎴杅alse鏄惁婧愪簬JDBCNULL鐨勫敮涓鏂規硶錛屾槸鐢ㄦ柟娉晈asNull榪涜媯嫻嬨傚鏋?getXXX 鏂規硶璇誨彇鐨勬渶鍚庝竴涓兼槸 JDBC NULL錛屽垯璇ユ柟娉曡繑鍥?true錛屽惁鍒欒繑鍥?flase銆?br />
聽
聽