锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲综合色一区二区三区,亚洲国产精品一区二区成人片国内,亚洲欧美aⅴ在线资源http://m.tkk7.com/redcoatjk/category/48593.html涓囩墿鐨嗗璞?涓囦簨褰掕妭濂?/description>zh-cnFri, 27 May 2011 21:37:00 GMTFri, 27 May 2011 21:37:00 GMT60[杞琞java涓環(huán)ashcode()鍜宔quals()鐨勮瑙?/title><link>http://m.tkk7.com/redcoatjk/archive/2011/05/27/351200.html</link><dc:creator>redcoatjk</dc:creator><author>redcoatjk</author><pubDate>Fri, 27 May 2011 10:15:00 GMT</pubDate><guid>http://m.tkk7.com/redcoatjk/archive/2011/05/27/351200.html</guid><wfw:comment>http://m.tkk7.com/redcoatjk/comments/351200.html</wfw:comment><comments>http://m.tkk7.com/redcoatjk/archive/2011/05/27/351200.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/redcoatjk/comments/commentRss/351200.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/redcoatjk/services/trackbacks/351200.html</trackback:ping><description><![CDATA[鎽樿嚜:<div>http://www.iteye.com/topic/257191</div><br />-----------------<br /><div>浠婂ぉ涓嬪崍鐮旂┒浜嗗崐澶﹉ashcode()鍜宔quals()鏂規(guī)硶錛岀粓浜庢湁浜嗕竴鐐圭偣鐨勬槑鐧斤紝鍐欎笅鏉ヤ笌澶у鍒嗕韓錛坺haoxudong 2008.10.23鏅?1.36錛夈? <br />1. 棣栧厛equals()鍜宧ashcode()榪欎袱涓柟娉曢兘鏄粠object綾諱腑緇ф壙榪囨潵鐨勩? <br />equals()鏂規(guī)硶鍦╫bject綾諱腑瀹氫箟濡備笅錛? <br />  public boolean equals(Object obj) { <br />return (this == obj); <br />} <br />寰堟槑鏄炬槸瀵逛袱涓璞$殑鍦板潃鍊艱繘琛岀殑姣旇緝錛堝嵆姣旇緝寮曠敤鏄惁鐩稿悓錛夈備絾鏄垜浠繀闇娓呮錛屽綋String 銆丮ath銆佽繕鏈塈nteger銆丏ouble銆傘傘傘傜瓑榪欎簺灝佽綾誨湪浣跨敤equals()鏂規(guī)硶鏃訛紝宸茬粡瑕嗙洊浜唎bject綾葷殑equals錛堬級鏂規(guī)硶銆傛瘮 濡傚湪String綾諱腑濡備笅錛? <br />  public boolean equals(Object anObject) { <br />if (this == anObject) { <br />    return true; <br />} <br />if (anObject instanceof String) { <br />    String anotherString = (String)anObject; <br />    int n = count; <br />    if (n == anotherString.count) { <br />char v1[] = value; <br />char v2[] = anotherString.value; <br />int i = offset; <br />int j = anotherString.offset; <br />while (n-- != 0) { <br />    if (v1[i++] != v2[j++]) <br />return false; <br />} <br />return true; <br />    } <br />} <br />return false; <br />} <br />寰堟槑鏄撅紝榪欐槸榪涜鐨勫唴瀹規(guī)瘮杈冿紝鑰屽凡緇忎笉鍐嶆槸鍦板潃鐨勬瘮杈冦備緷嬈$被鎺―ouble銆両nteger銆丮ath銆傘傘傘傜瓑絳夎繖浜涚被閮芥槸閲嶅啓浜唀quals()鏂規(guī)硶鐨勶紝浠庤岃繘琛岀殑鏄唴瀹圭殑姣旇緝銆傚綋鐒朵簡鍩烘湰綾誨瀷鏄繘琛屽肩殑姣旇緝錛岃繖涓病鏈変粈涔堝ソ璇寸殑銆? <br />鎴戜滑榪樺簲璇ユ敞鎰忥紝Java璇█瀵筫quals()鐨勮姹傚涓嬶紝榪欎簺瑕佹眰鏄繀欏婚伒寰殑錛? <br />• 瀵圭О鎬э細濡傛灉x.equals(y)榪斿洖鏄?#8220;true”錛岄偅涔坹.equals(x)涔熷簲璇ヨ繑鍥炴槸“true”銆? <br />• 鍙嶅皠鎬э細x.equals(x)蹇呴』榪斿洖鏄?#8220;true”銆? <br />• 綾繪帹鎬э細濡傛灉x.equals(y)榪斿洖鏄?#8220;true”錛岃屼笖y.equals(z)榪斿洖鏄?#8220;true”錛岄偅涔坺.equals(x)涔熷簲璇ヨ繑鍥炴槸“true”銆? <br />• 榪樻湁涓鑷存э細濡傛灉x.equals(y)榪斿洖鏄?#8220;true”錛屽彧瑕亁鍜寉鍐呭涓鐩翠笉鍙橈紝涓嶇浣犻噸澶峹.equals(y)澶氬皯嬈★紝榪斿洖閮芥槸“true”銆? <br />• 浠諱綍鎯呭喌涓嬶紝x.equals(null)錛屾案榪滆繑鍥炴槸“false”錛泋.equals(鍜寈涓嶅悓綾誨瀷鐨勫璞?姘歌繙榪斿洖鏄?#8220;false”銆? <br />浠ヤ笂榪欎簲鐐規(guī)槸閲嶅啓equals()鏂規(guī)硶鏃訛紝蹇呴』閬靛畧鐨勫噯鍒欙紝濡傛灉榪濆弽浼氬嚭鐜版剰鎯充笉鍒扮殑緇撴灉錛岃澶у涓瀹氳閬靛畧銆? <br />2. 鍏舵鏄痟ashcode() 鏂規(guī)硶錛屽湪object綾諱腑瀹氫箟濡備笅錛? <br />  public native int hashCode(); <br />璇存槑鏄竴涓湰鍦版柟娉曪紝瀹冪殑瀹炵幇鏄牴鎹湰鍦版満鍣ㄧ浉鍏崇殑銆傚綋鐒舵垜浠彲浠ュ湪鑷繁鍐欑殑綾諱腑瑕嗙洊hashcode()鏂規(guī)硶錛屾瘮濡係tring銆?Integer銆丏ouble銆傘傘傘傜瓑絳夎繖浜涚被閮芥槸瑕嗙洊浜唄ashcode()鏂規(guī)硶鐨勩備緥濡傚湪String綾諱腑瀹氫箟鐨刪ashcode()鏂規(guī)硶濡備笅錛? <br />    public int hashCode() { <br />int h = hash; <br />if (h == 0) { <br />    int off = offset; <br />    char val[] = value; <br />    int len = count; <br /> <br />            for (int i = 0; i < len; i++) { <br />                h = 31*h + val[off++]; <br />            } <br />            hash = h; <br />        } <br />        return h; <br />} <br />瑙i噴涓涓嬭繖涓▼搴忥紙String鐨凙PI涓啓鍒幫級錛? <br />s[0]*31^(n-1) + s[1]*31^(n-2) + ... + s[n-1] <br />浣跨敤 int 綆楁硶錛岃繖閲?s[i] 鏄瓧絎︿覆鐨勭 i 涓瓧絎︼紝n 鏄瓧絎︿覆鐨勯暱搴︼紝^ 琛ㄧず姹傚箓銆傦紙絀哄瓧絎︿覆鐨勫搱甯岀爜涓?0銆傦級 <br /> <br />3.榪欓噷鎴戜滑棣栧厛瑕佹槑鐧戒竴涓棶棰橈細 <br />equals()鐩哥瓑鐨勪袱涓璞★紝hashcode()涓瀹氱浉絳夛紱 <br />equals錛堬級涓嶇浉絳夌殑涓や釜瀵硅薄錛屽嵈騫朵笉鑳借瘉鏄庝粬浠殑hashcode()涓嶇浉絳夈傛崲鍙ヨ瘽璇達紝equals()鏂規(guī)硶涓嶇浉絳夌殑涓や釜瀵硅薄錛宧ashcode()鏈夊彲鑳界浉絳夈傦紙鎴戠殑鐞嗚В鏄敱浜庡搱甯岀爜鍦ㄧ敓鎴愮殑鏃跺欎駭鐢熷啿紿侀犳垚鐨勶級銆? <br />鍙嶈繃鏉ワ細hashcode()涓嶇瓑錛屼竴瀹氳兘鎺ㄥ嚭equals()涔熶笉絳夛紱hashcode()鐩哥瓑錛宔quals()鍙兘鐩哥瓑錛屼篃鍙兘涓嶇瓑銆傝В閲?涓嬬3鐐圭殑浣跨敤鑼冨洿錛屾垜鐨勭悊瑙f槸鍦╫bject銆丼tring絳夌被涓兘鑳戒嬌鐢ㄣ傚湪object綾諱腑錛宧ashcode()鏂規(guī)硶鏄湰鍦版柟娉曪紝榪斿洖鐨勬槸瀵硅薄鐨?鍦板潃鍊鹼紝鑰宱bject綾諱腑鐨別quals()鏂規(guī)硶姣旇緝鐨勪篃鏄袱涓璞$殑鍦板潃鍊鹼紝濡傛灉equals()鐩哥瓑錛岃鏄庝袱涓璞″湴鍧鍊間篃鐩哥瓑錛屽綋鐒?hashcode()涔熷氨鐩哥瓑浜嗭紱鍦⊿tring綾諱腑錛宔quals()榪斿洖鐨勬槸涓や釜瀵硅薄鍐呭鐨勬瘮杈冿紝褰撲袱涓璞″唴瀹圭浉絳夋椂錛? <br />Hashcode()鏂規(guī)硶鏍規(guī)嵁String綾葷殑閲嶅啓錛堢2鐐歸噷闈㈠凡緇忓垎鏋愪簡錛変唬鐮佺殑鍒嗘瀽錛屼篃鍙煡閬揾ashcode()榪斿洖緇撴灉涔熶細鐩哥瓑銆備互姝ょ被 鎺紝鍙互鐭ラ亾Integer銆丏ouble絳夊皝瑁呯被涓粡榪囬噸鍐欑殑equals()鍜宧ashcode()鏂規(guī)硶涔熷悓鏍烽傚悎浜庤繖涓師鍒欍傚綋鐒舵病鏈夌粡榪囬噸鍐欑殑 綾伙紝鍦ㄧ戶鎵夸簡object綾葷殑equals()鍜宧ashcode()鏂規(guī)硶鍚庯紝涔熶細閬靛畧榪欎釜鍘熷垯銆? <br /> <br />4.璋堝埌hashcode()鍜宔quals()灝變笉鑳戒笉璇村埌hashset,hashmap,hashtable涓殑浣跨敤錛屽叿浣撴槸鎬庢牱鍛紝璇風湅濡備笅鍒嗘瀽錛? <br />Hashset鏄戶鎵縎et鎺ュ彛錛孲et鎺ュ彛鍙堝疄鐜癈ollection鎺ュ彛錛岃繖鏄眰嬈″叧緋匯傞偅涔坔ashset鏄牴鎹粈涔堝師鐞嗘潵瀛樺彇瀵硅薄鐨勫憿錛? <br />鍦╤ashset涓笉鍏佽鍑虹幇閲嶅瀵硅薄錛屽厓绱犵殑浣嶇疆涔熸槸涓嶇‘瀹氱殑銆傚湪hashset涓張鏄庢牱鍒ゅ畾鍏冪礌鏄惁閲嶅鐨勫憿錛熻繖灝辨槸闂鐨勫叧閿墍鍦紝緇忚繃涓涓嬪崍鐨勬煡璇㈡眰璇佺粓浜庤幏寰椾簡涓鐐瑰惎紺猴紝鍜屽ぇ瀹跺垎浜竴涓嬶紝鍦╦ava鐨勯泦鍚堜腑錛屽垽鏂袱涓璞℃槸鍚︾浉絳夌殑瑙勫垯鏄細 <br />1)錛屽垽鏂袱涓璞$殑hashCode鏄惁鐩哥瓑 <br />      濡傛灉涓嶇浉絳夛紝璁や負涓や釜瀵硅薄涔熶笉鐩哥瓑錛屽畬姣? <br />      濡傛灉鐩哥瓑錛岃漿鍏?) <br />錛堣繖涓鐐瑰彧鏄負浜嗘彁楂樺瓨鍌ㄦ晥鐜囪岃姹傜殑錛屽叾瀹炵悊璁轟笂娌℃湁涔熷彲浠ワ紝浣嗗鏋滄病鏈夛紝瀹為檯浣跨敤鏃舵晥鐜囦細澶уぇ闄嶄綆錛屾墍浠ユ垜浠繖閲屽皢鍏跺仛涓哄繀闇鐨勩傚悗闈細閲嶇偣璁插埌榪欎釜闂銆傦級 <br />2)錛屽垽鏂袱涓璞$敤equals榪愮畻鏄惁鐩哥瓑 <br />      濡傛灉涓嶇浉絳夛紝璁や負涓や釜瀵硅薄涔熶笉鐩哥瓑 <br />      濡傛灉鐩哥瓑錛岃涓轟袱涓璞$浉絳夛紙equals()鏄垽鏂袱涓璞℃槸鍚︾浉絳夌殑鍏抽敭錛? <br />涓轟粈涔堟槸涓ゆ潯鍑嗗垯錛岄毦閬撶敤絎竴鏉′笉琛屽悧錛熶笉琛岋紝鍥犱負鍓嶉潰宸茬粡璇翠簡錛宧ashcode()鐩哥瓑鏃訛紝equals()鏂規(guī)硶涔熷彲鑳戒笉絳夛紝鎵浠ュ繀欏葷敤絎?鏉″噯鍒欒繘琛岄檺鍒訛紝鎵嶈兘淇濊瘉鍔犲叆鐨勪負闈為噸澶嶅厓绱犮? <br />姣斿涓嬮潰鐨勪唬鐮侊細 <br /> <br />public static void main(String args[]){ <br />String s1=new String("zhaoxudong"); <br />String s2=new String("zhaoxudong"); <br />System.out.println(s1==s2);//false <br />System.out.println(s1.equals(s2));//true <br />System.out.println(s1.hashCode());//s1.hashcode()絳変簬s2.hashcode() <br />System.out.println(s2.hashCode()); <br />Set hashset=new HashSet(); <br />hashset.add(s1); <br />hashset.add(s2); <br />/*瀹炶川涓婂湪娣誨姞s1,s2鏃訛紝榪愮敤涓婇潰璇村埌鐨勪袱鐐瑰噯鍒欙紝鍙互鐭ラ亾hashset璁や負s1鍜宻2鏄浉絳夌殑錛屾槸鍦ㄦ坊鍔犻噸澶嶅厓绱狅紝鎵浠ヨs2瑕嗙洊浜唖1;*/ <br />Iterator it=hashset.iterator(); <br />            while(it.hasNext()) <br />            { <br />             System.out.println(it.next()); <br />            } <br />鏈鍚庡湪while寰幆鐨勬椂鍊欏彧鎵撳嵃鍑轟簡涓涓?#8221;zhaoxudong”銆? <br />杈撳嚭緇撴灉涓猴細false <br />            true <br />            -967303459 <br />            -967303459 <br />榪欐槸鍥犱負String綾誨凡緇忛噸鍐欎簡equals()鏂規(guī)硶鍜宧ashcode()鏂規(guī)硶錛屾墍浠ュ湪鏍規(guī)嵁涓婇潰鐨勭1.2鏉″師鍒欏垽瀹氭椂錛宧ashset璁や負瀹冧滑鏄浉絳夌殑瀵硅薄錛岃繘琛屼簡閲嶅娣誨姞銆? <br />浣嗘槸鐪嬩笅闈㈢殑紼嬪簭錛? <br />import java.util.*; <br />public class HashSetTest <br />{ <br />   public static void main(String[] args) <br />    { <br />                 HashSet hs=new HashSet(); <br />                 hs.add(new Student(1,"zhangsan")); <br />                 hs.add(new Student(2,"lisi")); <br />                 hs.add(new Student(3,"wangwu")); <br />                 hs.add(new Student(1,"zhangsan")); <br />  <br />                 Iterator it=hs.iterator(); <br />                 while(it.hasNext()) <br />                 { <br />                        System.out.println(it.next()); <br />                 } <br />     } <br />} <br />class Student <br />   { <br />     int num; <br />     String name; <br />     Student(int num,String name) <br />                { <br />                this.num=num; <br />                 this.name=name; <br />                 } <br />              public String toString() <br />                { <br />                    return num+":"+name; <br />                 } <br />           }      <br />杈撳嚭緇撴灉涓猴細 <br />                      1:zhangsan <br />                   1:zhangsan <br />                   3:wangwu <br />                   2:lisi <br />闂鍑虹幇浜嗭紝涓轟粈涔坔ashset娣誨姞浜嗙浉絳夌殑鍏冪礌鍛紝榪欐槸涓嶆槸鍜宧ashset鐨勫師鍒欒繚鑳屼簡鍛紵鍥炵瓟鏄細娌℃湁 <br />鍥犱負鍦ㄦ牴鎹甴ashcode()瀵逛袱嬈″緩绔嬬殑new Student(1,"zhangsan")瀵硅薄榪涜姣旇緝鏃訛紝鐢熸垚鐨勬槸涓嶅悓鐨勫搱甯岀爜鍊鹼紝鎵浠ashset鎶婁粬褰撲綔涓嶅悓鐨勫璞″寰呬簡錛屽綋鐒舵鏃剁殑 equals()鏂規(guī)硶榪斿洖鐨勫間篃涓嶇瓑錛堣繖涓笉鐢ㄨВ閲婁簡鍚э級銆傞偅涔堜負浠涔堜細鐢熸垚涓嶅悓鐨勫搱甯岀爜鍊煎憿錛熶笂闈㈡垜浠湪姣旇緝s1鍜宻2鐨勬椂鍊欎笉鏄敓鎴愪簡鍚屾牱鐨勫搱甯岀爜 鍚楋紵鍘熷洜灝卞湪浜庢垜浠嚜宸卞啓鐨凷tudent綾誨茍娌℃湁閲嶆柊鑷繁鐨刪ashcode()鍜宔quals()鏂規(guī)硶錛屾墍浠ュ湪姣旇緝鏃訛紝鏄戶鎵跨殑object綾諱腑鐨?hashcode()鏂規(guī)硶錛屽懙鍛碉紝鍚勪綅榪樿寰梠bject綾諱腑鐨刪ashcode()鏂規(guī)硶姣旇緝鐨勬槸浠涔堝惂錛侊紒 <br />瀹冩槸涓涓湰鍦版柟娉曪紝姣旇緝鐨勬槸瀵硅薄鐨勫湴鍧錛堝紩鐢ㄥ湴鍧錛夛紝浣跨敤new鏂規(guī)硶鍒涘緩瀵硅薄錛屼袱嬈$敓鎴愮殑褰撶劧鏄笉鍚岀殑瀵硅薄浜嗭紙榪欎釜澶у閮借兘鐞嗚В鍚с傘傘傦級錛岄犳垚 鐨勭粨鏋滃氨鏄袱涓璞$殑hashcode()榪斿洖鐨勫間笉涓鏍楓傛墍浠ユ牴鎹涓涓噯鍒欙紝hashset浼氭妸瀹冧滑褰撲綔涓嶅悓鐨勫璞″寰咃紝鑷劧涔熺敤涓嶇潃絎簩涓噯鍒欒繘琛?鍒ゅ畾浜嗐傞偅涔堟庝箞瑙e喅榪欎釜闂鍛紵錛? <br />絳旀鏄細鍦⊿tudent綾諱腑閲嶆柊hashcode()鍜宔quals()鏂規(guī)硶銆? <br />渚嬪錛? <br />  class Student <br />{ <br />int num; <br />String name; <br />Student(int num,String name) <br />{ <br />            this.num=num; <br />            this.name=name; <br />} <br />public int hashCode() <br />{ <br />            return num*name.hashCode(); <br />} <br />public boolean equals(Object o) <br />{ <br />            Student s=(Student)o; <br />            return num==s.num && name.equals(s.name); <br />} <br />public String toString() <br />{ <br />            return num+":"+name; <br />} <br />} <br />鏍規(guī)嵁閲嶅啓鐨勬柟娉曪紝鍗充究涓ゆ璋冪敤浜唍ew Student(1,"zhangsan")錛屾垜浠湪鑾峰緱瀵硅薄鐨勫搱甯岀爜鏃訛紝鏍規(guī)嵁閲嶅啓鐨勬柟娉昲ashcode()錛岃幏寰楃殑鍝堝笇鐮佽偗瀹氭槸涓鏍風殑錛堣繖涓鐐瑰簲璇ユ病鏈夌枒闂惂錛夈? <br />褰撶劧鏍規(guī)嵁equals()鏂規(guī)硶鎴戜滑涔熷彲鍒ゆ柇鏄浉鍚岀殑銆傛墍浠ュ湪鍚慼ashset闆嗗悎涓坊鍔犳椂鎶婂畠浠綋浣滈噸澶嶅厓绱犵湅寰呬簡銆傛墍浠ヨ繍琛屼慨鏀瑰悗鐨勭▼搴忔椂錛屾垜浠細鍙戠幇榪愯緇撴灉鏄細 <br />                      1:zhangsan <br />                   3:wangwu <br />                   2:lisi <br />鍙互鐪嬪埌閲嶅鍏冪礌鐨勯棶棰樺凡緇忔秷闄ゃ? <br />鍏充簬鍦╤ibernate鐨刾ojo綾諱腑錛岄噸鏂癳quals()鍜宧ashcode()鐨勯棶棰橈細 <br />1)錛岄噸鐐規(guī)槸equals錛岄噸鍐檋ashCode鍙槸鎶鏈姹傦紙涓轟簡鎻愰珮鏁堢巼錛? <br />2)錛屼負浠涔堣閲嶅啓equals鍛紝鍥犱負鍦╦ava鐨勯泦鍚堟鏋朵腑錛屾槸閫氳繃equals鏉ュ垽鏂袱涓璞℃槸鍚︾浉絳夌殑 <br />3)錛屽湪hibernate涓紝緇忓父浣跨敤set闆嗗悎鏉ヤ繚瀛樼浉鍏沖璞★紝鑰宻et闆嗗悎鏄笉鍏佽閲嶅鐨勩傛垜浠啀鏉ヨ皥璋堝墠闈㈡彁鍒板湪鍚慼ashset闆嗗悎涓坊鍔犲厓绱犳椂,鎬庢牱鍒ゆ柇瀵硅薄鏄惁鐩稿悓鐨勫噯鍒欙紝鍓嶉潰璇翠簡涓ゆ潯錛屽叾瀹炲彧瑕侀噸鍐檈quals()榪欎竴鏉′篃鍙互銆? <br />浣嗗綋hashset涓厓绱犳瘮杈冨鏃訛紝鎴栬呮槸閲嶅啓鐨別quals()鏂規(guī)硶姣旇緝澶嶆潅鏃訛紝鎴戜滑鍙敤equals()鏂規(guī)硶榪涜姣旇緝鍒ゆ柇錛屾晥鐜囦篃浼氶潪甯鎬綆錛?鎵浠ュ紩鍏ヤ簡hashcode()榪欎釜鏂規(guī)硶錛屽彧鏄負浜嗘彁楂樻晥鐜囷紝浣嗘槸鎴戣寰楄繖鏄潪甯告湁蹇呰鐨勶紙鎵浠ユ垜浠湪鍓嶉潰浠ヤ袱鏉″噯鍒欐潵榪涜hashset鐨勫厓绱犳槸鍚﹂噸澶?鐨勫垽鏂級銆? <br />姣斿鍙互榪欐牱鍐欙細 <br />public int hashCode(){ <br />   return  1;}//絳変環(huán)浜巋ashcode鏃犳晥 <br />榪欐牱鍋氱殑鏁堟灉灝辨槸鍦ㄦ瘮杈冨搱甯岀爜鐨勬椂鍊欎笉鑳借繘琛屽垽鏂紝鍥犱負姣忎釜瀵硅薄榪斿洖鐨勫搱甯岀爜閮芥槸1錛屾瘡嬈¢兘蹇呴』瑕佺粡榪囨瘮杈僥quals()鏂規(guī)硶鍚庢墠鑳借繘琛屽垽鏂槸鍚﹂噸澶嶏紝榪欏綋鐒朵細寮曡搗鏁堢巼鐨勫ぇ澶ч檷浣庛? <br />鎴戞湁涓涓棶棰橈紝濡傛灉鍍忓墠闈㈡彁鍒扮殑鍦╤ashset涓垽鏂厓绱犳槸鍚﹂噸澶嶇殑蹇呰鏂規(guī)硶鏄痚quals()鏂規(guī)硶錛堟牴鎹綉涓婃壘鍒扮殑瑙傜偣錛夛紝浣嗘槸榪欓噷騫舵病鏈夋秹鍙婂埌鍏充簬鍝堝笇琛ㄧ殑闂錛屽彲鏄繖涓泦鍚堝嵈鍙玥ashset錛岃繖鏄負浠涔堬紵錛? <br />鎴戞兂錛屽湪hashmap,hashtable涓殑瀛樺偍鎿嶄綔錛屼緷鐒墮伒瀹堜笂闈㈢殑鍑嗗垯銆傛墍浠ヨ繖閲屼笉鍐嶅璇淬傝繖浜涙槸浠婂ぉ鐪嬩功錛岀綉涓婃煡璇㈣祫鏂欙紝鑷繁鎬葷粨鍑烘潵 鐨勶紝閮ㄥ垎浠g爜鍜岃璦鏄紩榪幫紝浣嗘槸鍗冪湡涓囩‘鏄嚜宸辨葷粨鍑烘潵鐨勩傛湁閿欒涔嬪鍜屼笉璇︾粏涓嶆竻妤氱殑鍦版柟榪樿澶у鎸囧嚭錛屾垜涔熸槸鍒濆鑰咃紝鎵浠ラ毦鍏嶄細鏈夐敊璇殑鍦版柟錛屽笇鏈涘ぇ 瀹跺叡鍚岃璁恒? </div><img src ="http://m.tkk7.com/redcoatjk/aggbug/351200.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/redcoatjk/" target="_blank">redcoatjk</a> 2011-05-27 18:15 <a href="http://m.tkk7.com/redcoatjk/archive/2011/05/27/351200.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>[杞琞JNDI鍒板簳鏄粈涔堬紝鏈変粈涔堜綔鐢?/title><link>http://m.tkk7.com/redcoatjk/archive/2011/05/22/350754.html</link><dc:creator>redcoatjk</dc:creator><author>redcoatjk</author><pubDate>Sun, 22 May 2011 02:34:00 GMT</pubDate><guid>http://m.tkk7.com/redcoatjk/archive/2011/05/22/350754.html</guid><wfw:comment>http://m.tkk7.com/redcoatjk/comments/350754.html</wfw:comment><comments>http://m.tkk7.com/redcoatjk/archive/2011/05/22/350754.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/redcoatjk/comments/commentRss/350754.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/redcoatjk/services/trackbacks/350754.html</trackback:ping><description><![CDATA[鎽樿嚜:<div>http://shitou521.iteye.com/blog/696006</div><div><h3>JNDI鐨勪竴綃囨枃绔?/h3> <p style="padding-right: 0px; padding-left: 0px; font-size: 16px; padding-bottom: 0px; margin: 0px 0px 0.5em; color: black; line-height: 1.5em; padding-top: 10px;">鍓嶇鏃墮棿鎬繪槸鍦ㄦ悶涓嶆竻JNDI鍒板簳鏄共浠涔堬紝铏界劧鏄竴鍊煎湪鐢紝鍗翠笉鐭ラ亾浠栨渶鍒濆嚭鐜扮殑鍘熷洜錛岀敤鏉ワ紝璇翠笉娓呮槸鐢ㄦ潵騫蹭粈涔堬紝涓嬮潰鎴戠浉淇′粙鑳借В寮榪欎釜榪烽浘閲屻?/p> <div>銆?strong style="font-weight: bold;">杞創(chuàng)涓綃?/strong>銆?nbsp;<br />------------ <br />JNDI鏄?Java 鍛藉悕涓庣洰褰曟帴鍙o紙Java Naming and Directory Interface錛夛紝鍦↗2EE瑙勮寖涓槸閲嶈鐨勮鑼冧箣涓錛屼笉灝戜笓瀹惰涓猴紝娌℃湁閫忓交鐞嗚ВJNDI鐨勬剰涔夊拰浣滅敤錛屽氨娌℃湁鐪熸鎺屾彙J2EE鐗瑰埆鏄疎JB鐨勭煡璇嗐?nbsp;<br /><br />閭d箞錛孞NDI鍒板簳璧蜂粈涔堜綔鐢紵<span style="color: red;">//甯︾潃闂鐪嬫枃绔犳槸鏈鏈夋晥鐨?/span> <br /><br />瑕佷簡瑙NDI鐨勪綔鐢紝鎴戜滑鍙互浠?#8220;濡傛灉涓嶇敤JNDI鎴戜滑鎬庢牱鍋氾紵鐢ㄤ簡JNDI鍚庢垜浠張灝嗘庢牱鍋氾紵”榪欎釜闂鏉ユ帰璁ㄣ?nbsp;<br /><br />娌℃湁JNDI鐨勫仛娉曪細 <br /><br />紼嬪簭鍛樺紑鍙戞椂錛岀煡閬撹寮鍙戣闂甅ySQL鏁版嵁搴撶殑搴旂敤錛屼簬鏄皢涓涓 MySQL JDBC 椹卞姩紼嬪簭綾葷殑寮曠敤榪涜浜嗙紪鐮侊紝騫墮氳繃浣跨敤閫傚綋鐨?JDBC URL 榪炴帴鍒版暟鎹簱銆?nbsp;<br />灝卞儚浠ヤ笅浠g爜榪欐牱錛?nbsp;<br /><br /><div style="font-size: 12px; margin-left: 9px; width: 694px; font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', Consolas, 'Courier New', monospace; background-color: transparent; padding: 1px;"> <div> <div style="font-weight: bold; margin: 0px; color: black; text-align: left; padding: 3px;">Java浠g爜  </div> </div> <ol style="padding-right: 0px; padding-left: 0px; font-size: 1em; padding-bottom: 2px; margin: 0px 0px 1px; color: #2b91af; line-height: 1.4em; padding-top: 2px; background-color: #ffffff; border: #d1d7dc 1px solid;"><li style="padding-right: 0px; padding-left: 10px; font-size: 1em; padding-bottom: 0px; margin: 0px 0px 0px 38px; border-left: #d1d7dc 1px solid; line-height: 18px; padding-top: 0px; background-color: #fafafa;"><span style="color: black;"><span style="color: black;">Connection conn=</span><span style="font-weight: bold; color: #7f0055;">null</span><span style="color: black;">;  </span></span></li><li style="padding-right: 0px; padding-left: 10px; font-size: 1em; padding-bottom: 0px; margin: 0px 0px 0px 38px; border-left: #d1d7dc 1px solid; line-height: 18px; padding-top: 0px; background-color: #fafafa;"><span style="color: black;"><span style="font-weight: bold; color: #7f0055;">try</span><span style="color: black;"> {  </span></span></li><li style="padding-right: 0px; padding-left: 10px; font-size: 1em; padding-bottom: 0px; margin: 0px 0px 0px 38px; border-left: #d1d7dc 1px solid; line-height: 18px; padding-top: 0px; background-color: #fafafa;"><span style="color: black;">  Class.forName(<span style="color: blue;">"com.mysql.jdbc.Driver"</span><span style="color: black;">,  </span></span></li><li style="padding-right: 0px; padding-left: 10px; font-size: 1em; padding-bottom: 0px; margin: 0px 0px 0px 38px; border-left: #d1d7dc 1px solid; line-height: 18px; padding-top: 0px; background-color: #fafafa;"><span style="color: black;">                <span style="font-weight: bold; color: #7f0055;">true</span><span style="color: black;">, Thread.currentThread().getContextClassLoader());  </span></span></li><li style="padding-right: 0px; padding-left: 10px; font-size: 1em; padding-bottom: 0px; margin: 0px 0px 0px 38px; border-left: #d1d7dc 1px solid; line-height: 18px; padding-top: 0px; background-color: #fafafa;"><span style="color: black;">  conn=DriverManager.  </span></li><li style="padding-right: 0px; padding-left: 10px; font-size: 1em; padding-bottom: 0px; margin: 0px 0px 0px 38px; border-left: #d1d7dc 1px solid; line-height: 18px; padding-top: 0px; background-color: #fafafa;"><span style="color: black;">    getConnection(<span style="color: blue;">"jdbc:mysql://MyDBServer?user=qingfeng&password=mingyue"</span><span style="color: black;">);  </span></span></li><li style="padding-right: 0px; padding-left: 10px; font-size: 1em; padding-bottom: 0px; margin: 0px 0px 0px 38px; border-left: #d1d7dc 1px solid; line-height: 18px; padding-top: 0px; background-color: #fafafa;"><span style="color: black;">  ......  </span></li><li style="padding-right: 0px; padding-left: 10px; font-size: 1em; padding-bottom: 0px; margin: 0px 0px 0px 38px; border-left: #d1d7dc 1px solid; line-height: 18px; padding-top: 0px; background-color: #fafafa;"><span style="color: black;">  conn.close();  </span></li><li style="padding-right: 0px; padding-left: 10px; font-size: 1em; padding-bottom: 0px; margin: 0px 0px 0px 38px; border-left: #d1d7dc 1px solid; line-height: 18px; padding-top: 0px; background-color: #fafafa;"><span style="color: black;">} <span style="font-weight: bold; color: #7f0055;">catch</span><span style="color: black;">(Exception e) {  </span></span></li><li style="padding-right: 0px; padding-left: 10px; font-size: 1em; padding-bottom: 0px; margin: 0px 0px 0px 38px; border-left: #d1d7dc 1px solid; line-height: 18px; padding-top: 0px; background-color: #fafafa;"><span style="color: black;">  e.printStackTrace();  </span></li><li style="padding-right: 0px; padding-left: 10px; font-size: 1em; padding-bottom: 0px; margin: 0px 0px 0px 38px; border-left: #d1d7dc 1px solid; line-height: 18px; padding-top: 0px; background-color: #fafafa;"><span style="color: black;">} <span style="font-weight: bold; color: #7f0055;">finally</span><span style="color: black;"> {  </span></span></li><li style="padding-right: 0px; padding-left: 10px; font-size: 1em; padding-bottom: 0px; margin: 0px 0px 0px 38px; border-left: #d1d7dc 1px solid; line-height: 18px; padding-top: 0px; background-color: #fafafa;"><span style="color: black;">  <span style="font-weight: bold; color: #7f0055;">if</span><span style="color: black;">(conn!=</span><span style="font-weight: bold; color: #7f0055;">null</span><span style="color: black;">) {  </span></span></li><li style="padding-right: 0px; padding-left: 10px; font-size: 1em; padding-bottom: 0px; margin: 0px 0px 0px 38px; border-left: #d1d7dc 1px solid; line-height: 18px; padding-top: 0px; background-color: #fafafa;"><span style="color: black;">    <span style="font-weight: bold; color: #7f0055;">try</span><span style="color: black;"> {  </span></span></li><li style="padding-right: 0px; padding-left: 10px; font-size: 1em; padding-bottom: 0px; margin: 0px 0px 0px 38px; border-left: #d1d7dc 1px solid; line-height: 18px; padding-top: 0px; background-color: #fafafa;"><span style="color: black;">      conn.close();  </span></li><li style="padding-right: 0px; padding-left: 10px; font-size: 1em; padding-bottom: 0px; margin: 0px 0px 0px 38px; border-left: #d1d7dc 1px solid; line-height: 18px; padding-top: 0px; background-color: #fafafa;"><span style="color: black;">    } <span style="font-weight: bold; color: #7f0055;">catch</span><span style="color: black;">(SQLException e) {}  </span></span></li><li style="padding-right: 0px; padding-left: 10px; font-size: 1em; padding-bottom: 0px; margin: 0px 0px 0px 38px; border-left: #d1d7dc 1px solid; line-height: 18px; padding-top: 0px; background-color: #fafafa;"><span style="color: black;">  }  </span></li><li style="padding-right: 0px; padding-left: 10px; font-size: 1em; padding-bottom: 0px; margin: 0px 0px 0px 38px; border-left: #d1d7dc 1px solid; line-height: 18px; padding-top: 0px; background-color: #fafafa;"><span style="color: black;">}  </span></li></ol> </div> <br /><br /><br />榪欐槸浼犵粺鐨勫仛娉曪紝涔熸槸浠ュ墠闈濲ava紼嬪簭鍛橈紙濡侱elphi銆乂B絳夛級甯歌鐨勫仛娉曘傝繖縐嶅仛娉曚竴鑸湪灝忚妯$殑寮鍙戣繃紼嬩腑涓嶄細浜х敓闂錛屽彧瑕佺▼搴忓憳鐔熸?zhèn)塉ava璇█銆佷簡瑙DBC鎶鏈拰MySQL錛屽彲浠ュ緢蹇紑鍙戝嚭鐩稿簲鐨勫簲鐢ㄧ▼搴忋?nbsp;<br /><br />娌℃湁JNDI鐨勫仛娉曞瓨鍦ㄧ殑闂錛?nbsp;<br />1銆佹暟鎹簱鏈嶅姟鍣ㄥ悕縐癕yDBServer 銆佺敤鎴峰悕鍜屽彛浠ら兘鍙兘闇瑕佹敼鍙橈紝鐢辨寮曞彂JDBC URL闇瑕佷慨鏀癸紱 <br />2銆佹暟鎹簱鍙兘鏀圭敤鍒殑浜у搧錛屽鏀圭敤DB2鎴栬匫racle錛屽紩鍙慗DBC椹卞姩紼嬪簭鍖呭拰綾誨悕闇瑕佷慨鏀癸紱 <br />3銆侀殢鐫瀹為檯浣跨敤緇堢鐨勫鍔狅紝鍘熼厤緗殑榪炴帴姹犲弬鏁板彲鑳介渶瑕佽皟鏁達紱 <br />4銆?..... <br /><br />瑙e喅鍔炴硶錛?nbsp;<br />紼?搴忓憳搴旇涓嶉渶瑕佸叧蹇?#8220;鍏蜂綋鐨勬暟鎹簱鍚庡彴鏄粈涔堬紵JDBC椹卞姩紼嬪簭鏄粈涔堬紵JDBC URL鏍煎紡鏄粈涔堬紵璁塊棶鏁版嵁搴撶殑鐢ㄦ埛鍚嶅拰鍙d護鏄粈涔堬紵”絳夌瓑榪欎簺闂錛岀▼搴忓憳緙栧啓鐨勭▼搴忓簲璇ユ病鏈夊 JDBC 椹卞姩紼嬪簭鐨勫紩鐢紝娌℃湁鏈嶅姟鍣ㄥ悕縐幫紝娌℃湁鐢ㄦ埛鍚嶇О鎴栧彛浠?—— 鐢氳嚦娌℃湁鏁版嵁搴撴睜鎴栬繛鎺ョ鐞嗐傝屾槸鎶婅繖浜涢棶棰樹氦緇橨2EE瀹瑰櫒鏉ラ厤緗拰綆$悊錛岀▼搴忓憳鍙渶瑕佸榪欎簺閰嶇疆鍜岀鐞嗚繘琛屽紩鐢ㄥ嵆鍙?nbsp;<br /><br />鐢辨錛屽氨鏈変簡JNDI銆?nbsp;<br /><span style="color: red;">//鐪嬬殑鍑烘潵錛屾槸涓轟簡涓涓渶鏈鏍稿績鐨勯棶棰橈細鏄負浜嗚В鑰︼紝鏄負浜嗗紑鍙戝嚭鏇村姞鍙淮鎶ゃ佸彲鎵╁睍//鐨勭郴緇?/span> <br /><br />鐢ㄤ簡JNDI涔嬪悗鐨勫仛娉曪細 <br />棣栧厛錛?span style="color: red;">鍦ㄥ湪J2EE瀹瑰櫒涓厤緗甁NDI鍙傛暟</span>錛屽畾涔変竴涓暟鎹簮錛屼篃灝辨槸JDBC寮曠敤鍙傛暟錛岀粰榪欎釜鏁版嵁婧愯緗竴涓悕縐幫紱鐒跺悗錛屽湪紼嬪簭涓紝閫氳繃鏁版嵁婧愬悕縐板紩鐢ㄦ暟鎹簮浠庤岃闂悗鍙版暟鎹簱銆?nbsp;<br /><br /><span style="color: red;">//綰㈣壊鐨勫瓧鍙互鐪嬪嚭錛孞NDI鏄敱j2ee瀹瑰櫒鎻愪緵鐨勫姛鑳?/span> <br /><br />鍏蜂綋鎿嶄綔濡備笅錛堜互JBoss涓轟緥錛夛細 <br />1銆侀厤緗暟鎹簮 <br />鍦↗Boss 鐨?D:\jboss420GA\docs\examples\jca 鏂囦歡澶逛笅闈紝鏈夊緢澶氫笉鍚屾暟鎹簱寮曠敤鐨勬暟鎹簮瀹氫箟妯℃澘銆傚皢鍏朵腑鐨? mysql-ds.xml 鏂囦歡Copy鍒頒綘浣跨敤鐨勬湇鍔″櫒涓嬶紝濡?D:\jboss420GA\server\default\deploy銆?nbsp;<br />淇敼 mysql-ds.xml 鏂囦歡鐨勫唴瀹癸紝浣夸箣鑳介氳繃JDBC姝g‘璁塊棶浣犵殑MySQL鏁版嵁搴擄紝濡備笅錛?nbsp;<br /><div style="font-size: 12px; margin-left: 9px; width: 694px; font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', Consolas, 'Courier New', monospace; background-color: transparent; padding: 1px;"> <div> <div style="font-weight: bold; margin: 0px; color: black; text-align: left; padding: 3px;">Java浠g爜  </div> </div> <ol style="padding-right: 0px; padding-left: 0px; font-size: 1em; padding-bottom: 2px; margin: 0px 0px 1px; color: #2b91af; line-height: 1.4em; padding-top: 2px; background-color: #ffffff; border: #d1d7dc 1px solid;"><li style="padding-right: 0px; padding-left: 10px; font-size: 1em; padding-bottom: 0px; margin: 0px 0px 0px 38px; border-left: #d1d7dc 1px solid; line-height: 18px; padding-top: 0px; background-color: #fafafa;"><span style="color: black;"><span style="color: black;"><?xml version=</span><span style="color: blue;">"1.0"</span><span style="color: black;"> encoding=</span><span style="color: blue;">"UTF-8"</span><span style="color: black;">?>  </span></span></li><li style="padding-right: 0px; padding-left: 10px; font-size: 1em; padding-bottom: 0px; margin: 0px 0px 0px 38px; border-left: #d1d7dc 1px solid; line-height: 18px; padding-top: 0px; background-color: #fafafa;"><span style="color: black;"><datasources>  </span></li><li style="padding-right: 0px; padding-left: 10px; font-size: 1em; padding-bottom: 0px; margin: 0px 0px 0px 38px; border-left: #d1d7dc 1px solid; line-height: 18px; padding-top: 0px; background-color: #fafafa;"><span style="color: black;"><local-tx-datasource>  </span></li><li style="padding-right: 0px; padding-left: 10px; font-size: 1em; padding-bottom: 0px; margin: 0px 0px 0px 38px; border-left: #d1d7dc 1px solid; line-height: 18px; padding-top: 0px; background-color: #fafafa;"><span style="color: black;">    <jndi-name>MySqlDS</jndi-name>  </span></li><li style="padding-right: 0px; padding-left: 10px; font-size: 1em; padding-bottom: 0px; margin: 0px 0px 0px 38px; border-left: #d1d7dc 1px solid; line-height: 18px; padding-top: 0px; background-color: #fafafa;"><span style="color: black;">    <connection-url>jdbc:mysql:<span style="color: #008200;">//localhost:3306/lw</connection-url></span><span style="color: black;">  </span></span></li><li style="padding-right: 0px; padding-left: 10px; font-size: 1em; padding-bottom: 0px; margin: 0px 0px 0px 38px; border-left: #d1d7dc 1px solid; line-height: 18px; padding-top: 0px; background-color: #fafafa;"><span style="color: black;">    <driver-<span style="font-weight: bold; color: #7f0055;">class</span><span style="color: black;">>com.mysql.jdbc.Driver</driver-</span><span style="font-weight: bold; color: #7f0055;">class</span><span style="color: black;">>  </span></span></li><li style="padding-right: 0px; padding-left: 10px; font-size: 1em; padding-bottom: 0px; margin: 0px 0px 0px 38px; border-left: #d1d7dc 1px solid; line-height: 18px; padding-top: 0px; background-color: #fafafa;"><span style="color: black;">    <user-name>root</user-name>  </span></li><li style="padding-right: 0px; padding-left: 10px; font-size: 1em; padding-bottom: 0px; margin: 0px 0px 0px 38px; border-left: #d1d7dc 1px solid; line-height: 18px; padding-top: 0px; background-color: #fafafa;"><span style="color: black;">    <password>rootpassword</password>  </span></li><li style="padding-right: 0px; padding-left: 10px; font-size: 1em; padding-bottom: 0px; margin: 0px 0px 0px 38px; border-left: #d1d7dc 1px solid; line-height: 18px; padding-top: 0px; background-color: #fafafa;"><span style="color: black;"><exception-sorter-<span style="font-weight: bold; color: #7f0055;">class</span><span style="color: black;">-name>  </span></span></li><li style="padding-right: 0px; padding-left: 10px; font-size: 1em; padding-bottom: 0px; margin: 0px 0px 0px 38px; border-left: #d1d7dc 1px solid; line-height: 18px; padding-top: 0px; background-color: #fafafa;"><span style="color: black;">org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter  </span></li><li style="padding-right: 0px; padding-left: 10px; font-size: 1em; padding-bottom: 0px; margin: 0px 0px 0px 38px; border-left: #d1d7dc 1px solid; line-height: 18px; padding-top: 0px; background-color: #fafafa;"><span style="color: black;"></exception-sorter-<span style="font-weight: bold; color: #7f0055;">class</span><span style="color: black;">-name>  </span></span></li><li style="padding-right: 0px; padding-left: 10px; font-size: 1em; padding-bottom: 0px; margin: 0px 0px 0px 38px; border-left: #d1d7dc 1px solid; line-height: 18px; padding-top: 0px; background-color: #fafafa;"><span style="color: black;">    <metadata>  </span></li><li style="padding-right: 0px; padding-left: 10px; font-size: 1em; padding-bottom: 0px; margin: 0px 0px 0px 38px; border-left: #d1d7dc 1px solid; line-height: 18px; padding-top: 0px; background-color: #fafafa;"><span style="color: black;">       <type-mapping>mySQL</type-mapping>  </span></li><li style="padding-right: 0px; padding-left: 10px; font-size: 1em; padding-bottom: 0px; margin: 0px 0px 0px 38px; border-left: #d1d7dc 1px solid; line-height: 18px; padding-top: 0px; background-color: #fafafa;"><span style="color: black;">    </metadata>  </span></li><li style="padding-right: 0px; padding-left: 10px; font-size: 1em; padding-bottom: 0px; margin: 0px 0px 0px 38px; border-left: #d1d7dc 1px solid; line-height: 18px; padding-top: 0px; background-color: #fafafa;"><span style="color: black;"></local-tx-datasource>  </span></li><li style="padding-right: 0px; padding-left: 10px; font-size: 1em; padding-bottom: 0px; margin: 0px 0px 0px 38px; border-left: #d1d7dc 1px solid; line-height: 18px; padding-top: 0px; background-color: #fafafa;"><span style="color: black;"></datasources>  </span></li></ol> </div> <br /><br />榪欓噷錛屽畾涔変簡涓涓悕涓篗ySqlDS鐨勬暟鎹簮錛屽叾鍙傛暟鍖呮嫭JDBC鐨刄RL錛岄┍鍔ㄧ被鍚嶏紝鐢ㄦ埛鍚嶅強瀵嗙爜絳夈?nbsp;<br /><br />2銆佸湪紼嬪簭涓紩鐢ㄦ暟鎹簮錛?nbsp;<br /><br /><div style="font-size: 12px; margin-left: 9px; width: 694px; font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', Consolas, 'Courier New', monospace; background-color: transparent; padding: 1px;"> <div> <div style="font-weight: bold; margin: 0px; color: black; text-align: left; padding: 3px;">Java浠g爜  </div> </div> <ol style="padding-right: 0px; padding-left: 0px; font-size: 1em; padding-bottom: 2px; margin: 0px 0px 1px; color: #2b91af; line-height: 1.4em; padding-top: 2px; background-color: #ffffff; border: #d1d7dc 1px solid;"><li style="padding-right: 0px; padding-left: 10px; font-size: 1em; padding-bottom: 0px; margin: 0px 0px 0px 38px; border-left: #d1d7dc 1px solid; line-height: 18px; padding-top: 0px; background-color: #fafafa;"><span style="color: black;"><span style="color: black;">Connection conn=</span><span style="font-weight: bold; color: #7f0055;">null</span><span style="color: black;">;  </span></span></li><li style="padding-right: 0px; padding-left: 10px; font-size: 1em; padding-bottom: 0px; margin: 0px 0px 0px 38px; border-left: #d1d7dc 1px solid; line-height: 18px; padding-top: 0px; background-color: #fafafa;"><span style="color: black;"><span style="font-weight: bold; color: #7f0055;">try</span><span style="color: black;"> {  </span></span></li><li style="padding-right: 0px; padding-left: 10px; font-size: 1em; padding-bottom: 0px; margin: 0px 0px 0px 38px; border-left: #d1d7dc 1px solid; line-height: 18px; padding-top: 0px; background-color: #fafafa;"><span style="color: black;">  Context ctx=<span style="font-weight: bold; color: #7f0055;">new</span><span style="color: black;"> InitialContext();  </span></span></li><li style="padding-right: 0px; padding-left: 10px; font-size: 1em; padding-bottom: 0px; margin: 0px 0px 0px 38px; border-left: #d1d7dc 1px solid; line-height: 18px; padding-top: 0px; background-color: #fafafa;"><span style="color: black;">  Object datasourceRef=ctx.lookup(<span style="color: blue;">"java:MySqlDS"</span><span style="color: black;">); </span><span style="color: #008200;">//寮曠敤鏁版嵁婧?/span><span style="color: black;">  </span></span></li><li style="padding-right: 0px; padding-left: 10px; font-size: 1em; padding-bottom: 0px; margin: 0px 0px 0px 38px; border-left: #d1d7dc 1px solid; line-height: 18px; padding-top: 0px; background-color: #fafafa;"><span style="color: black;">  DataSource ds=(Datasource)datasourceRef;  </span></li><li style="padding-right: 0px; padding-left: 10px; font-size: 1em; padding-bottom: 0px; margin: 0px 0px 0px 38px; border-left: #d1d7dc 1px solid; line-height: 18px; padding-top: 0px; background-color: #fafafa;"><span style="color: black;">  conn=ds.getConnection();  </span></li><li style="padding-right: 0px; padding-left: 10px; font-size: 1em; padding-bottom: 0px; margin: 0px 0px 0px 38px; border-left: #d1d7dc 1px solid; line-height: 18px; padding-top: 0px; background-color: #fafafa;"><span style="color: black;">  ......  </span></li><li style="padding-right: 0px; padding-left: 10px; font-size: 1em; padding-bottom: 0px; margin: 0px 0px 0px 38px; border-left: #d1d7dc 1px solid; line-height: 18px; padding-top: 0px; background-color: #fafafa;"><span style="color: black;">  c.close();  </span></li><li style="padding-right: 0px; padding-left: 10px; font-size: 1em; padding-bottom: 0px; margin: 0px 0px 0px 38px; border-left: #d1d7dc 1px solid; line-height: 18px; padding-top: 0px; background-color: #fafafa;"><span style="color: black;">} <span style="font-weight: bold; color: #7f0055;">catch</span><span style="color: black;">(Exception e) {  </span></span></li><li style="padding-right: 0px; padding-left: 10px; font-size: 1em; padding-bottom: 0px; margin: 0px 0px 0px 38px; border-left: #d1d7dc 1px solid; line-height: 18px; padding-top: 0px; background-color: #fafafa;"><span style="color: black;">  e.printStackTrace();  </span></li><li style="padding-right: 0px; padding-left: 10px; font-size: 1em; padding-bottom: 0px; margin: 0px 0px 0px 38px; border-left: #d1d7dc 1px solid; line-height: 18px; padding-top: 0px; background-color: #fafafa;"><span style="color: black;">} <span style="font-weight: bold; color: #7f0055;">finally</span><span style="color: black;"> {  </span></span></li><li style="padding-right: 0px; padding-left: 10px; font-size: 1em; padding-bottom: 0px; margin: 0px 0px 0px 38px; border-left: #d1d7dc 1px solid; line-height: 18px; padding-top: 0px; background-color: #fafafa;"><span style="color: black;">  <span style="font-weight: bold; color: #7f0055;">if</span><span style="color: black;">(conn!=</span><span style="font-weight: bold; color: #7f0055;">null</span><span style="color: black;">) {  </span></span></li><li style="padding-right: 0px; padding-left: 10px; font-size: 1em; padding-bottom: 0px; margin: 0px 0px 0px 38px; border-left: #d1d7dc 1px solid; line-height: 18px; padding-top: 0px; background-color: #fafafa;"><span style="color: black;">    <span style="font-weight: bold; color: #7f0055;">try</span><span style="color: black;"> {  </span></span></li><li style="padding-right: 0px; padding-left: 10px; font-size: 1em; padding-bottom: 0px; margin: 0px 0px 0px 38px; border-left: #d1d7dc 1px solid; line-height: 18px; padding-top: 0px; background-color: #fafafa;"><span style="color: black;">      conn.close();  </span></li><li style="padding-right: 0px; padding-left: 10px; font-size: 1em; padding-bottom: 0px; margin: 0px 0px 0px 38px; border-left: #d1d7dc 1px solid; line-height: 18px; padding-top: 0px; background-color: #fafafa;"><span style="color: black;">    } <span style="font-weight: bold; color: #7f0055;">catch</span><span style="color: black;">(SQLException e) { }  </span></span></li><li style="padding-right: 0px; padding-left: 10px; font-size: 1em; padding-bottom: 0px; margin: 0px 0px 0px 38px; border-left: #d1d7dc 1px solid; line-height: 18px; padding-top: 0px; background-color: #fafafa;"><span style="color: black;">  }  </span></li><li style="padding-right: 0px; padding-left: 10px; font-size: 1em; padding-bottom: 0px; margin: 0px 0px 0px 38px; border-left: #d1d7dc 1px solid; line-height: 18px; padding-top: 0px; background-color: #fafafa;"><span style="color: black;">}  </span></li></ol> </div> <br /><br />鐩存帴浣跨敤JDBC鎴栬呴氳繃JNDI寮曠敤鏁版嵁婧愮殑緙栫▼浠g爜閲忕浉宸棤鍑狅紝浣嗘槸鐜板湪鐨勭▼搴忓彲浠ヤ笉鐢ㄥ叧蹇冨叿浣揓DBC鍙傛暟浜嗐?span style="color: red;">//瑙h棔浜嗭紝鍙墿灞曚簡</span> <br />鍦ㄧ郴緇熼儴緗插悗錛屽鏋滄暟鎹簱鐨勭浉鍏沖弬鏁板彉鏇達紝鍙渶瑕侀噸鏂伴厤緗?mysql-ds.xml 淇敼鍏朵腑鐨凧DBC鍙傛暟錛屽彧瑕佷繚璇佹暟鎹簮鐨勫悕縐頒笉鍙橈紝閭d箞紼嬪簭婧愪唬鐮佸氨鏃犻渶淇敼銆?nbsp;<br /><br />鐢辨鍙錛?span style="color: red;">JNDI閬垮厤浜嗙▼搴忎笌鏁版嵁搴撲箣闂寸殑绱ц﹀悎錛屼嬌搴旂敤鏇村姞鏄撲簬閰嶇疆銆佹槗浜庨儴緗?/span>銆?nbsp;<br /><br />JNDI鐨勬墿灞曪細 <br />JNDI鍦ㄦ弧瓚充簡鏁版嵁婧愰厤緗殑瑕佹眰鐨勫熀紜涓婏紝榪樿繘涓姝ユ墿鍏呬簡浣滅敤錛氭墍鏈変笌緋葷粺澶栭儴鐨勮祫婧愮殑寮曠敤錛岄兘鍙互閫氳繃JNDI瀹氫箟鍜屽紩鐢ㄣ?nbsp;<br /><span style="color: red;">//娉ㄦ剰浠涔堝彨璧勬簮</span> <br /><br />鎵浠ワ紝鍦↗2EE瑙勮寖涓紝J2EE 涓殑璧勬簮騫朵笉灞闄愪簬 JDBC 鏁版嵁婧愩傚紩鐢ㄧ殑綾誨瀷鏈夊緢澶氾紝鍏朵腑鍖呮嫭璧勬簮寮曠敤錛堝凡緇忚璁鴻繃錛夈佺幆澧冨疄浣撳拰 EJB 寮曠敤銆傜壒鍒槸 EJB 寮曠敤錛屽畠鏆撮湶浜?JNDI 鍦?J2EE 涓殑鍙﹀涓欏瑰叧閿鑹詫細鏌ユ壘鍏朵粬搴旂敤紼嬪簭緇勪歡銆?nbsp;<br /><br />EJB 鐨?JNDI 寮曠敤闈炲父綾諱技浜?JDBC 璧勬簮鐨勫紩鐢ㄣ傚湪鏈嶅姟瓚嬩簬杞崲鐨勭幆澧冧腑錛岃繖鏄竴縐嶅緢鏈夋晥鐨勬柟娉曘傚彲浠ュ搴旂敤紼嬪簭鏋舵瀯涓墍寰楀埌鐨勬墍鏈夌粍浠惰繘琛岃繖綾婚厤緗鐞嗭紝浠?EJB 緇勪歡鍒?JMS 闃熷垪鍜屼富棰橈紝鍐嶅埌綆鍗曢厤緗瓧絎︿覆鎴栧叾浠栧璞★紝榪欏彲浠ラ檷浣庨殢鏃墮棿鐨勬帹縐繪湇鍔″彉鏇存墍浜х敓鐨勭淮鎶ゆ垚鏈紝鍚屾椂榪樺彲浠ョ畝鍖栭儴緗詫紝鍑忓皯闆嗘垚宸ヤ綔銆傚閮ㄨ祫婧?#8221;銆?nbsp;<br /><br /><br />鎬葷粨錛?nbsp;<br /><span style="color: red;">J2EE 瑙勮寖瑕佹眰鎵鏈?J2EE 瀹瑰櫒閮借鎻愪緵 JNDI 瑙勮寖鐨勫疄鐜般?/span><span style="color: red;">//sun 鏋滅劧鍠滄鍒跺畾瑙勮寖</span>JNDI 鍦?J2EE 涓殑瑙掕壊灝辨槸“浜ゆ崲鏈?#8221; —— J2EE 緇勪歡鍦ㄨ繍琛屾椂闂存帴鍦版煡鎵懼叾浠栫粍浠躲佽祫婧愭垨鏈嶅姟鐨勯氱敤鏈哄埗銆傚湪澶氭暟鎯呭喌涓嬶紝鎻愪緵 JNDI 渚涘簲鑰呯殑瀹瑰櫒鍙互鍏呭綋鏈夐檺鐨勬暟鎹瓨鍌紝榪欐牱綆$悊鍛樺氨鍙互璁劇疆搴旂敤紼嬪簭鐨勬墽琛屽睘鎬э紝騫惰鍏朵粬搴旂敤紼嬪簭寮曠敤榪欎簺灞炴э紙Java 綆$悊鎵╁睍錛圝ava Management Extensions錛孞MX錛変篃鍙互鐢ㄤ綔榪欎釜鐩殑錛夈侸NDI 鍦?J2EE 搴旂敤紼嬪簭涓殑涓昏瑙掕壊灝辨槸鎻愪緵闂存帴灞傦紝榪欐牱緇勪歡灝卞彲浠ュ彂鐜版墍闇瑕佺殑璧勬簮錛岃屼笉鐢ㄤ簡瑙h繖浜涢棿鎺ユс?nbsp;<br /><br />鍦?J2EE 涓紝JNDI 鏄妸 J2EE 搴旂敤紼嬪簭鍚堝湪涓璧風殑綺樺悎鍓傦紝JNDI 鎻愪緵鐨勯棿鎺ュ鍧鍏佽璺ㄤ紒涓氫氦浠樺彲浼哥緝鐨勩佸姛鑳藉己澶т笖寰堢伒媧葷殑搴旂敤紼嬪簭銆傝繖鏄?J2EE 鐨勬壙璇猴紝鑰屼笖緇忚繃涓浜涜鍒掑拰棰勫厛鑰冭檻錛岃繖涓壙璇烘槸瀹屽叏鍙互瀹炵幇鐨勩?nbsp;<br /><br /><strong style="font-weight: bold;"><br />浠庝笂闈㈢殑鏂囩珷涓彲浠ョ湅鍑猴細 <br />1銆丣NDI 鎻愬嚭鐨勭洰鐨勬槸涓轟簡瑙h棔錛屾槸涓轟簡寮鍙戞洿鍔犲鏄撶淮鎶わ紝瀹規(guī)槗鎵╁睍錛屽鏄撻儴緗茬殑搴旂敤銆?nbsp;<br />2銆丣NDI 鏄竴涓猻un鎻愬嚭鐨勪竴涓鑼?綾諱技浜巎dbc),鍏蜂綋鐨勫疄鐜版槸鍚勪釜j2ee瀹瑰櫒鎻愪緵鍟嗭紝sun   鍙槸瑕佹眰錛宩2ee瀹瑰櫒蹇呴』鏈塉NDI榪欐牱鐨勫姛鑳姐?nbsp;<br />3銆丣NDI 鍦╦2ee緋葷粺涓殑瑙掕壊鏄?#8220;浜ゆ崲鏈?#8221;錛屾槸J2EE緇勪歡鍦ㄨ繍琛屾椂闂存帴鍦版煡鎵懼叾浠栫粍浠躲佽祫婧愭垨鏈嶅姟鐨勯氱敤鏈哄埗銆?nbsp;<br />4銆丣NDI 鏄氳繃璧勬簮鐨勫悕瀛楁潵鏌ユ壘鐨勶紝璧勬簮鐨勫悕瀛楀湪鏁翠釜j2ee搴旂敤涓?j2ee瀹瑰櫒涓?鏄敮涓鐨勩?nbsp;<br /><br />鍐嶈漿涓綃囨枃绔狅細 <br /></strong><br /><br />JNDI鍏ㄧО Java Naming and Directory Interface <br />JNDI 鏄疛ava騫沖彴鐨勪竴涓爣鍑嗘墿灞曪紝鎻愪緵浜嗕竴緇勬帴鍙c佺被鍜屽叧浜庡懡鍚嶇┖闂寸殑姒傚康銆傚鍚屽叾瀹冨緢澶欽ava鎶鏈竴鏍鳳紝JDNI鏄痯rovider-based鐨勬妧 鏈紝鏆撮湶浜嗕竴涓狝PI鍜屼竴涓湇鍔′緵搴旀帴鍙o紙SPI錛夈傝繖鎰忓懗鐫浠諱綍鍩轟簬鍚嶅瓧鐨勬妧鏈兘鑳介氳繃JNDI鑰屾彁渚涙湇鍔★紝鍙JNDI鏀寔榪欓」鎶鏈侸NDI鐩墠鎵 鏀寔鐨勬妧鏈寘鎷琇DAP銆丆ORBA Common Object Service錛圕OS錛夊悕瀛楁湇鍔°丷MI銆丯DS銆丏NS銆乄indows娉ㄥ唽琛ㄧ瓑絳夈傚緢澶欽2EE鎶鏈紝鍖呮嫭EJB閮戒緷闈燡NDI鏉ョ粍緇囧拰瀹氫綅瀹炰綋銆?nbsp;<br />JDNI閫氳繃緇戝畾鐨勬蹇靛皢瀵硅薄鍜屽悕縐拌仈緋昏搗鏉ャ傚湪涓涓枃浠剁郴緇熶腑錛屾枃浠跺悕琚粦瀹氱粰鏂囦歡銆傚湪DNS涓紝涓涓狪P鍦板潃緇戝畾涓涓猆RL銆傚湪鐩綍鏈嶅姟涓紝涓涓璞″悕琚粦瀹氱粰涓涓璞″疄浣撱?nbsp;<br />JNDI 涓殑涓緇勭粦瀹氫綔涓轟笂涓嬫枃鏉ュ紩鐢ㄣ傛瘡涓笂涓嬫枃鏆撮湶鐨勪竴緇勬搷浣滄槸涓鑷寸殑銆備緥濡傦紝姣忎釜涓婁笅鏂囨彁渚涗簡涓涓煡鎵炬搷浣滐紝榪斿洖鎸囧畾鍚嶅瓧鐨勭浉搴斿璞°傛瘡涓笂涓嬫枃閮芥彁渚涗簡緇?瀹氬拰鎾ら櫎緇戝畾鍚嶅瓧鍒版煇涓璞$殑鎿嶄綔銆侸NDI浣跨敤閫氱敤鐨勬柟寮忔潵鏆撮湶鍛藉悕絀洪棿錛屽嵆浣跨敤鍒嗗眰涓婁笅鏂囦互鍙婁嬌鐢ㄧ浉鍚屽懡鍚嶈娉曠殑瀛愪笂涓嬫枃銆?nbsp;<br />jndi鐨勭敤閫旓細 <br />1銆備綘鍙互鐢╦ndi鏉ュ緱鍒皁bject綾葷殑灞炴?nbsp;<br />濡傦細 <br /><div style="font-size: 12px; margin-left: 9px; width: 694px; font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', Consolas, 'Courier New', monospace; background-color: transparent; padding: 1px;"> <div> <div style="font-weight: bold; margin: 0px; color: black; text-align: left; padding: 3px;">Java浠g爜  </div> </div> <ol style="padding-right: 0px; padding-left: 0px; font-size: 1em; padding-bottom: 2px; margin: 0px 0px 1px; color: #2b91af; line-height: 1.4em; padding-top: 2px; background-color: #ffffff; border: #d1d7dc 1px solid;"><li style="padding-right: 0px; padding-left: 10px; font-size: 1em; padding-bottom: 0px; margin: 0px 0px 0px 38px; border-left: #d1d7dc 1px solid; line-height: 18px; padding-top: 0px; background-color: #fafafa;"><span style="color: black;"><span style="color: black;">Attribute attr =directory.getAttributes(personName).get(</span><span style="color: blue;">"email"</span><span style="color: black;">);   </span></span></li><li style="padding-right: 0px; padding-left: 10px; font-size: 1em; padding-bottom: 0px; margin: 0px 0px 0px 38px; border-left: #d1d7dc 1px solid; line-height: 18px; padding-top: 0px; background-color: #fafafa;"><span style="color: black;">String email = (String)attr.get();   </span></li></ol> </div> <br />2銆備綘鍙互鐢╦ndi鏉ユ悳绱㈠璞?nbsp;<br />濡傦細 <br /><div style="font-size: 12px; margin-left: 9px; width: 694px; font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', Consolas, 'Courier New', monospace; background-color: transparent; padding: 1px;"> <div> <div style="font-weight: bold; margin: 0px; color: black; text-align: left; padding: 3px;">Java浠g爜  </div> </div> <ol style="padding-right: 0px; padding-left: 0px; font-size: 1em; padding-bottom: 2px; margin: 0px 0px 1px; color: #2b91af; line-height: 1.4em; padding-top: 2px; background-color: #ffffff; border: #d1d7dc 1px solid;"><li style="padding-right: 0px; padding-left: 10px; font-size: 1em; padding-bottom: 0px; margin: 0px 0px 0px 38px; border-left: #d1d7dc 1px solid; line-height: 18px; padding-top: 0px; background-color: #fafafa;"><span style="color: black;"><span style="color: black;">foxes = directory.search(</span><span style="color: blue;">"o=Wiz,c=US"</span><span style="color: black;">, </span><span style="color: blue;">"sn=Fox"</span><span style="color: black;">, controls);   </span></span></li></ol> </div> <br />鏌ユ壘璋佺殑鍚嶅瓧鍙獸ox鍦╳iz閮ㄩ棬鐨勫憳宸ワ紵 <br />3銆備綘鍙互鐢╦ndi閫氳繃naming/directory鏈嶅姟鏌ヨ鍍弍rinters鍜宒atabases鐨勫璞?nbsp;<br />濡傦細鏌ヨ Printer <br /><div style="font-size: 12px; margin-left: 9px; width: 694px; font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', Consolas, 'Courier New', monospace; background-color: transparent; padding: 1px;"> <div> <div style="font-weight: bold; margin: 0px; color: black; text-align: left; padding: 3px;">Java浠g爜  </div> </div> <ol style="padding-right: 0px; padding-left: 0px; font-size: 1em; padding-bottom: 2px; margin: 0px 0px 1px; color: #2b91af; line-height: 1.4em; padding-top: 2px; background-color: #ffffff; border: #d1d7dc 1px solid;"><li style="padding-right: 0px; padding-left: 10px; font-size: 1em; padding-bottom: 0px; margin: 0px 0px 0px 38px; border-left: #d1d7dc 1px solid; line-height: 18px; padding-top: 0px; background-color: #fafafa;"><span style="color: black;"><span style="color: black;">Printer printer = (Printer)namespace.lookup(printerName);   </span></span></li><li style="padding-right: 0px; padding-left: 10px; font-size: 1em; padding-bottom: 0px; margin: 0px 0px 0px 38px; border-left: #d1d7dc 1px solid; line-height: 18px; padding-top: 0px; background-color: #fafafa;"><span style="color: black;">printer.print(document);   </span></li></ol> </div> <br />4銆備綘鍙互鐢╦ndi鍒楄〃鍑哄懡鍚嶇┖闂寸殑鐗規(guī)畩綰у埆鐨勫唴瀹?nbsp;<br />濡傦細 <br /><div style="font-size: 12px; margin-left: 9px; width: 694px; font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', Consolas, 'Courier New', monospace; background-color: transparent; padding: 1px;"> <div> <div style="font-weight: bold; margin: 0px; color: black; text-align: left; padding: 3px;">Java浠g爜  </div> </div> <ol style="padding-right: 0px; padding-left: 0px; font-size: 1em; padding-bottom: 2px; margin: 0px 0px 1px; color: #2b91af; line-height: 1.4em; padding-top: 2px; background-color: #ffffff; border: #d1d7dc 1px solid;"><li style="padding-right: 0px; padding-left: 10px; font-size: 1em; padding-bottom: 0px; margin: 0px 0px 0px 38px; border-left: #d1d7dc 1px solid; line-height: 18px; padding-top: 0px; background-color: #fafafa;"><span style="color: black;"><span style="color: black;">NamingEnumeration list = namespace.list(</span><span style="color: blue;">"o=Widget, c=US"</span><span style="color: black;">;   </span></span></li><li style="padding-right: 0px; padding-left: 10px; font-size: 1em; padding-bottom: 0px; margin: 0px 0px 0px 38px; border-left: #d1d7dc 1px solid; line-height: 18px; padding-top: 0px; background-color: #fafafa;"><span style="color: black;"><span style="font-weight: bold; color: #7f0055;">while</span><span style="color: black;"> (list.hasMore()) {   </span></span></li><li style="padding-right: 0px; padding-left: 10px; font-size: 1em; padding-bottom: 0px; margin: 0px 0px 0px 38px; border-left: #d1d7dc 1px solid; line-height: 18px; padding-top: 0px; background-color: #fafafa;"><span style="color: black;">NameClassPair entry = (NameClassPair)list.next();   </span></li><li style="padding-right: 0px; padding-left: 10px; font-size: 1em; padding-bottom: 0px; margin: 0px 0px 0px 38px; border-left: #d1d7dc 1px solid; line-height: 18px; padding-top: 0px; background-color: #fafafa;"><span style="color: black;">display(entry.getName(), entry.getClassName());   </span></li><li style="padding-right: 0px; padding-left: 10px; font-size: 1em; padding-bottom: 0px; margin: 0px 0px 0px 38px; border-left: #d1d7dc 1px solid; line-height: 18px; padding-top: 0px; background-color: #fafafa;"><span style="color: black;">}   <br /></span></li></ol> </div> </div></div><img src ="http://m.tkk7.com/redcoatjk/aggbug/350754.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/redcoatjk/" target="_blank">redcoatjk</a> 2011-05-22 10:34 <a href="http://m.tkk7.com/redcoatjk/archive/2011/05/22/350754.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <p>感谢您访问我们的网站,您可能还对以下资源感兴趣:</p> <a href="http://m.tkk7.com/" title="亚洲av成人片在线观看">亚洲av成人片在线观看</a> <div class="friend-links"> </div> </div> </footer> 主站蜘蛛池模板: <a href="http://carsmp.com" target="_blank">久9热免费精品视频在线观看</a>| <a href="http://wuiso.com" target="_blank">国产亚洲精品免费视频播放</a>| <a href="http://mmstom.com" target="_blank">成全高清视频免费观看</a>| <a href="http://142121.com" target="_blank">色偷偷亚洲女人天堂观看欧</a>| <a href="http://cc19123.com" target="_blank">免费成人福利视频</a>| <a href="http://ti166.com" target="_blank">亚洲国产成人精品久久</a>| <a href="http://www62hth.com" target="_blank">国产人成免费视频网站</a>| <a href="http://sy8989.com" target="_blank">亚洲国产日韩综合久久精品</a>| <a href="http://df6618.com" target="_blank">成人一a毛片免费视频</a>| <a href="http://gzweida88.com" target="_blank">亚洲国产精品嫩草影院</a>| <a href="http://sdhuamo.com" target="_blank">四虎影库久免费视频</a>| <a href="http://bjsunic.com" target="_blank">无码毛片一区二区三区视频免费播放</a>| <a href="http://liulian88.com" target="_blank">免费欧洲毛片A级视频无风险</a>| <a href="http://www5xsq.com" target="_blank">日韩电影免费在线观看网址 </a>| <a href="http://cnlawedu.com" target="_blank">午夜免费福利小电影</a>| <a href="http://tccqdy.com" target="_blank">亚洲综合精品一二三区在线 </a>| <a href="http://rr7733.com" target="_blank">成人奭片免费观看</a>| <a href="http://mt181.com" target="_blank">蜜芽亚洲av无码一区二区三区</a>| <a href="http://127ht.com" target="_blank">免费一级毛片免费播放</a>| <a href="http://wwwy6x22.com" target="_blank">japanese色国产在线看免费</a>| <a href="http://ztsf6688.com" target="_blank">国产成人无码综合亚洲日韩</a>| <a href="http://dzhyyy.com" target="_blank">亚洲视频免费在线观看</a>| <a href="http://csl-chinga.com" target="_blank">激情五月亚洲色图</a>| <a href="http://d8139.com" target="_blank">亚洲精品第一国产综合精品99</a>| <a href="http://class3g.com" target="_blank">国产一级在线免费观看</a>| <a href="http://600c63.com" target="_blank">亚洲欧洲国产成人精品</a>| <a href="http://yangguang882.com" target="_blank">大陆一级毛片免费视频观看i</a>| <a href="http://ccc998.com" target="_blank">日本高清不卡中文字幕免费</a>| <a href="http://horticartf.com" target="_blank">亚洲成色www久久网站夜月</a>| <a href="http://hidiaoyan.com" target="_blank">1000部夫妻午夜免费</a>| <a href="http://wankufan.com" target="_blank">亚洲aⅴ无码专区在线观看</a>| <a href="http://hbwhgd.com" target="_blank">久久亚洲国产欧洲精品一</a>| <a href="http://szgyk.com" target="_blank">人成午夜免费视频在线观看</a>| <a href="http://2266511.com" target="_blank">直接进入免费看黄的网站</a>| <a href="http://nblfkj.com" target="_blank">亚洲国产第一站精品蜜芽</a>| <a href="http://www-83118.com" target="_blank">成年男女男精品免费视频网站</a>| <a href="http://lijieedu.com" target="_blank">特级毛片在线大全免费播放</a>| <a href="http://7x966.com" target="_blank">亚洲综合激情六月婷婷在线观看</a>| <a href="http://www-554949.com" target="_blank">在线播放高清国语自产拍免费</a>| <a href="http://dd99com.com" target="_blank">永久免费av无码网站yy</a>| <a href="http://kekead.com" target="_blank">亚洲人成自拍网站在线观看</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>