锘??xml version="1.0" encoding="utf-8" standalone="yes"?>99ri精品国产亚洲,亚洲成a人片在线看,亚洲av综合av一区二区三区http://www.tkk7.com/aichan/category/8882.htmlzh-cnFri, 02 Mar 2007 05:01:50 GMTFri, 02 Mar 2007 05:01:50 GMT60 Hibernate浜岀駭緙撳瓨鏀葷暐錛堣漿杞斤級http://www.tkk7.com/aichan/articles/63483.html鑹懼皹鑹懼皹Mon, 14 Aug 2006 07:11:00 GMThttp://www.tkk7.com/aichan/articles/63483.htmlhttp://www.tkk7.com/aichan/comments/63483.htmlhttp://www.tkk7.com/aichan/articles/63483.html#Feedback0http://www.tkk7.com/aichan/comments/commentRss/63483.htmlhttp://www.tkk7.com/aichan/services/trackbacks/63483.html浣滆咃細AreYouOk
鏂囨。鏉ヨ嚜錛?a >http://forum.javaeye.com/viewtopic.php?t=18904
寰堝浜哄浜岀駭緙撳瓨閮戒笉澶簡瑙o紝鎴栬呮槸鏈夐敊璇殑璁よ瘑錛屾垜涓鐩存兂鍐欎竴綃囨枃绔犱粙緇嶄竴涓媓ibernate鐨勪簩綰х紦瀛樼殑錛屼粖澶╃粓浜庡繊涓嶄綇浜嗐?br />鎴戠殑緇忛獙涓昏鏉ヨ嚜hibernate2.1鐗堟湰錛屽熀鏈師鐞嗗拰3.0銆?.1鏄竴鏍風殑錛岃鍘熻皡鎴戠殑欏藉浐涓嶅寲銆?br />
hibernate鐨剆ession鎻愪緵浜嗕竴綰х紦瀛橈紝姣忎釜session錛屽鍚屼竴涓猧d榪涜涓ゆload錛屼笉浼氬彂閫佷袱鏉ql緇欐暟鎹簱錛屼絾鏄痵ession鍏抽棴鐨勬椂鍊欙紝涓綰х紦瀛樺氨澶辨晥浜嗐?br />
浜岀駭緙撳瓨鏄疭essionFactory綰у埆鐨勫叏灞緙撳瓨錛屽畠搴曚笅鍙互浣跨敤涓嶅悓鐨勭紦瀛樼被搴擄紝姣斿ehcache銆乷scache絳夛紝闇瑕佽緗甴ibernate.cache.provider_class錛屾垜浠繖閲岀敤ehcache錛屽湪2.1涓氨鏄?br />hibernate.cache.provider_class=net.sf.hibernate.cache.EhCacheProvider
濡傛灉浣跨敤鏌ヨ緙撳瓨錛屽姞涓?br />hibernate.cache.use_query_cache=true


緙撳瓨鍙互綆鍗曠殑鐪嬫垚涓涓狹ap錛岄氳繃key鍦ㄧ紦瀛橀噷闈㈡壘value銆?br />
Class鐨勭紦瀛?/span>
瀵? 浜庝竴鏉¤褰曪紝涔熷氨鏄竴涓狿O鏉ヨ錛屾槸鏍規嵁ID鏉ユ壘鐨勶紝緙撳瓨鐨刱ey灝辨槸ID錛寁alue鏄疨OJO銆傛棤璁簂ist錛宭oad榪樻槸iterate錛屽彧瑕佽鍑? 涓涓璞★紝閮戒細濉厖緙撳瓨銆備絾鏄痩ist涓嶄細浣跨敤緙撳瓨錛岃宨terate浼氬厛鍙栨暟鎹簱select id鍑烘潵錛岀劧鍚庝竴涓猧d涓涓猧d鐨刲oad錛屽鏋滃湪緙撳瓨閲岄潰鏈夛紝灝變粠緙撳瓨鍙栵紝娌℃湁鐨勮瘽灝卞幓鏁版嵁搴搇oad銆傚亣璁炬槸璇誨啓緙撳瓨錛岄渶瑕佽緗細

濡傛灉浣犱嬌鐢ㄧ殑浜岀駭緙撳瓨瀹炵幇鏄痚hcache鐨勮瘽錛岄渶瑕侀厤緗甧hcache.xml

鍏? 涓璭ternal琛ㄧず緙撳瓨鏄笉鏄案榪滀笉瓚呮椂錛宼imeToLiveSeconds鏄紦瀛樹腑姣忎釜鍏冪礌錛堣繖閲屼篃灝辨槸涓涓狿OJO錛夌殑 瓚呮椂鏃墮棿錛屽鏋渆ternal="false"錛岃秴榪囨寚瀹氱殑鏃墮棿錛岃繖涓厓绱犲氨琚Щ璧頒簡銆倀imeToIdleSeconds鏄彂鍛嗘椂闂達紝鏄彲閫夌殑銆傚綋寰緙? 瀛橀噷闈ut鐨勫厓绱犺秴榪?00涓椂錛屽鏋渙verflowToDisk="true"錛屽氨浼氭妸緙撳瓨涓殑閮ㄥ垎鏁版嵁淇濆瓨鍦ㄧ‖鐩樹笂鐨勪復鏃舵枃浠墮噷闈€?br />姣忎釜闇瑕佺紦瀛樼殑class閮借榪欐牱閰嶇疆銆傚鏋滀綘娌℃湁閰嶇疆錛宧ibernate浼氬湪鍚姩鐨勬椂鍊欒鍛婁綘錛岀劧鍚庝嬌鐢╠efaultCache鐨勯厤緗紝榪欐牱澶氫釜class浼氬叡浜竴涓厤緗?br />褰撴煇涓狪D閫氳繃hibernate淇敼鏃訛紝hibernate浼氱煡閬擄紝浜庢槸縐婚櫎緙撳瓨銆?br />榪? 鏍峰ぇ瀹跺彲鑳戒細鎯籌紝鍚屾牱鐨勬煡璇㈡潯浠訛紝絎竴嬈″厛list錛岀浜屾鍐峣terate錛屽氨鍙互浣跨敤鍒扮紦瀛樹簡銆傚疄闄呬笂榪欐槸寰堥毦鐨勶紝鍥犱負浣犳棤娉曞垽鏂粈涔堟椂鍊欐槸絎竴嬈★紝 鑰屼笖姣忔鏌ヨ鐨勬潯浠墮氬父鏄笉涓鏍風殑錛屽亣濡傛暟鎹簱閲岄潰鏈?00鏉¤褰曪紝id浠?鍒?00錛岀涓嬈ist鐨勬椂鍊欏嚭浜嗗墠50涓猧d錛岀浜屾iterate鐨勬椂 鍊欏嵈鏌ヨ鍒?0鑷?0鍙穒d錛岄偅涔?0-50鏄粠緙撳瓨閲岄潰鍙栫殑錛?1鍒?0鏄粠鏁版嵁搴撳彇鐨勶紝鍏卞彂閫?+20鏉ql銆傛墍浠ユ垜涓鐩磋涓篿terate娌℃湁浠 涔堢敤錛屾繪槸浼氭湁1+N鐨勯棶棰樸?br />錛堥澶栬瘽錛氭湁璇存硶璇村ぇ鍨嬫煡璇㈢敤list浼氭妸鏁翠釜緇撴灉闆嗚鍏ュ唴瀛橈紝寰堟參錛岃宨terate鍙猻elect id姣旇緝濂斤紝浣嗘槸澶у瀷鏌ヨ鎬繪槸瑕佸垎欏墊煡鐨勶紝璋佷篃涓嶄細鐪熺殑鎶婃暣涓粨鏋滈泦瑁呰繘鏉ワ紝鍋囧涓欏?0鏉$殑璇濓紝iterate鍏遍渶瑕佹墽琛?1鏉¤鍙ワ紝list铏界劧閫夋嫨 鑻ュ共瀛楁錛屾瘮iterate絎竴鏉elect id璇彞鎱竴浜涳紝浣嗗彧鏈変竴鏉¤鍙ワ紝涓嶈鍏ユ暣涓粨鏋滈泦hibernate榪樹細鏍規嵁鏁版嵁搴撴柟璦鍋氫紭鍖栵紝姣斿浣跨敤mysql鐨刲imit錛屾暣浣撶湅鏉ュ簲璇ヨ繕鏄? list蹇傦級
濡傛灉鎯寵瀵筶ist鎴栬卛terate鏌ヨ鐨勭粨鏋滅紦瀛橈紝灝辮鐢ㄥ埌鏌ヨ緙撳瓨浜?br />
鏌ヨ緙撳瓨
棣栧厛闇瑕侀厤緗甴ibernate.cache.use_query_cache=true
濡傛灉鐢╡hcache錛岄厤緗甧hcache.xml錛屾敞鎰廻ibernate3.0浠ュ悗涓嶆槸net.sf鐨勫寘鍚嶄簡

maxElementsInMemory="50" eternal="false" timeToIdleSeconds="3600"
timeToLiveSeconds="7200" overflowToDisk="true"/>

maxElementsInMemory="5000" eternal="true" overflowToDisk="true"/>
鐒跺悗
query.setCacheable(true);//嬋媧繪煡璇㈢紦瀛?br />query.setCacheRegion("myCacheRegion");//鎸囧畾瑕佷嬌鐢ㄧ殑cacheRegion錛屽彲閫?br />絎簩琛屾寚瀹氳浣跨敤鐨刢acheRegion鏄痬yCacheRegion錛屽嵆浣犲彲浠ョ粰姣忎釜鏌ヨ緙撳瓨鍋氫竴涓崟鐙殑閰嶇疆錛屼嬌鐢╯etCacheRegion鏉ュ仛榪欎釜鎸囧畾錛岄渶瑕佸湪ehcache.xml閲岄潰閰嶇疆瀹冿細

濡傛灉鐪佺暐絎簩琛岋紝涓嶈緗甤acheRegion鐨勮瘽錛岄偅涔堜細浣跨敤涓婇潰鎻愬埌鐨勬爣鍑嗘煡璇㈢紦瀛樼殑閰嶇疆錛屼篃灝辨槸net.sf.hibernate.cache.StandardQueryCache

瀵逛簬鏌ヨ緙撳瓨鏉ヨ錛岀紦瀛樼殑key鏄牴鎹甴ql鐢熸垚鐨剆ql錛屽啀鍔犱笂鍙傛暟錛屽垎欏電瓑淇℃伅錛堝彲浠ラ氳繃鏃ュ織杈撳嚭鐪嬪埌錛屼笉榪囧畠鐨勮緭鍑轟笉鏄緢鍙錛屾渶濂芥敼涓涓嬪畠鐨勪唬鐮侊級銆?br />姣斿hql錛?br />from Cat c where c.name like ?
鐢熸垚澶ц嚧濡備笅鐨剆ql錛?br />select * from cat c where c.name like ?
鍙傛暟鏄?tiger%"錛岄偅涔堟煡璇㈢紦瀛樼殑key*澶х害*鏄繖鏍風殑瀛楃涓詫紙鎴戞槸鍑蹇嗗啓鐨勶紝騫朵笉綺劇‘錛屼笉榪囩湅浜嗕篃璇ユ槑鐧戒簡錛夛細
select * from cat c where c.name like ? , parameter:tiger%
榪欐牱錛屼繚璇佷簡鍚屾牱鐨勬煡璇€佸悓鏍風殑鍙傛暟絳夋潯浠朵笅鍏鋒湁涓鏍風殑key銆?br />鐜? 鍦ㄨ璇寸紦瀛樼殑value錛屽鏋滄槸list鏂瑰紡鐨勮瘽錛寁alue鍦ㄨ繖閲屽茍涓嶆槸鏁翠釜緇撴灉闆嗭紝鑰屾槸鏌ヨ鍑烘潵鐨勮繖涓涓睮D銆備篃灝辨槸璇達紝涓嶇鏄痩ist鏂規硶榪樻槸 iterate鏂規硶錛岀涓嬈℃煡璇㈢殑鏃跺欙紝瀹冧滑鐨勬煡璇㈡柟寮忓緢瀹冧滑騫蟲椂鐨勬柟寮忔槸涓鏍風殑錛宭ist鎵ц涓鏉ql錛宨terate鎵ц1+N鏉★紝澶氬嚭鏉ョ殑琛屼負鏄? 瀹冧滑濉厖浜嗙紦瀛樸備絾鏄埌鍚屾牱鏉′歡絎簩嬈℃煡璇㈢殑鏃跺欙紝灝遍兘鍜宨terate鐨勮涓轟竴鏍蜂簡錛屾牴鎹紦瀛樼殑key鍘葷紦瀛橀噷闈㈡煡鍒頒簡value錛寁alue鏄竴涓? id錛岀劧鍚庡湪鍒癱lass鐨勭紦瀛橀噷闈㈠幓涓涓竴涓殑load鍑烘潵銆傝繖鏍峰仛鏄負浜嗚妭綰﹀唴瀛樸?br />鍙互鐪嬪嚭鏉ワ紝鏌ヨ緙撳瓨闇瑕佹墦寮鐩稿叧綾葷殑class緙撳瓨銆俵ist鍜宨terate鏂規硶絎竴嬈℃墽琛岀殑鏃跺欙紝閮芥槸鏃㈠~鍏呮煡璇㈢紦瀛樺張濉厖class緙撳瓨鐨勩?br />榪欓噷榪樻湁涓涓緢瀹規槗琚拷瑙嗙殑閲嶈闂錛屽嵆鎵撳紑鏌ヨ緙撳瓨浠ュ悗錛屽嵆浣挎槸list鏂規硶涔熷彲鑳介亣鍒?+N鐨勯棶棰橈紒鐩? 鍚屾潯浠剁涓嬈ist鐨勬椂鍊欙紝鍥犱負鏌ヨ緙撳瓨涓壘涓嶅埌錛屼笉綆lass緙撳瓨鏄惁瀛樺湪鏁版嵁錛屾繪槸鍙戦佷竴鏉ql璇彞鍒版暟鎹簱鑾峰彇鍏ㄩ儴鏁版嵁錛岀劧鍚庡~鍏呮煡璇㈢紦瀛樺拰 class緙撳瓨銆備絾鏄浜屾鎵ц鐨勬椂鍊欙紝闂灝辨潵浜嗭紝濡傛灉浣犵殑class緙撳瓨鐨勮秴鏃舵椂闂存瘮杈冪煭錛岀幇鍦╟lass緙撳瓨閮借秴鏃朵簡錛屼絾鏄煡璇㈢紦瀛樿繕鍦紝閭d箞 list鏂規硶鍦ㄨ幏鍙杋d涓蹭互鍚庯紝灝嗕細涓涓竴涓幓鏁版嵁搴搇oad錛佸洜姝わ紝class緙撳瓨鐨勮秴鏃舵椂闂翠竴瀹氫笉鑳界煭浜庢煡璇㈢紦瀛樿緗殑瓚呮椂鏃墮棿錛佸鏋滆繕璁劇疆浜嗗彂鍛嗘椂 闂寸殑璇濓紝淇濊瘉class緙撳瓨鐨勫彂鍛嗘椂闂翠篃澶т簬鏌ヨ鐨勭紦瀛樼殑鐢熷瓨鏃墮棿銆傝繖閲岃繕鏈夊叾浠栨儏鍐碉紝姣斿class緙撳瓨琚▼搴忓己鍒秂vict浜嗭紝榪欑鎯呭喌灝辮鑷繁娉ㄦ剰 浜嗐?br />
鍙﹀錛屽鏋渉ql鏌ヨ鍖呭惈select瀛楀彞錛岄偅涔堟煡璇㈢紦瀛橀噷闈㈢殑value灝辨槸鏁翠釜緇撴灉闆嗕簡銆?br />
褰揾ibernate鏇存柊鏁版嵁搴撶殑鏃跺欙紝瀹冩庝箞鐭ラ亾鏇存柊鍝簺鏌ヨ緙撳瓨鍛紵
hibernate鍦ㄤ竴涓湴鏂圭淮鎶ゆ瘡涓〃鐨勬渶鍚庢洿鏂版椂闂達紝鍏跺疄涔熷氨鏄斁鍦ㄤ笂闈et.sf.hibernate.cache.UpdateTimestampsCache鎵鎸囧畾鐨勭紦瀛橀厤緗噷闈€?br />褰? 閫氳繃hibernate鏇存柊鐨勬椂鍊欙紝hibernate浼氱煡閬撹繖嬈℃洿鏂板獎鍝嶄簡鍝簺琛ㄣ傜劧鍚庡畠鏇存柊榪欎簺琛ㄧ殑鏈鍚庢洿鏂版椂闂淬傛瘡涓紦瀛橀兘鏈変竴涓敓鎴愭椂闂村拰榪欎釜緙? 瀛樻墍鏌ヨ鐨勮〃錛屽綋hibernate鏌ヨ涓涓紦瀛樻槸鍚﹀瓨鍦ㄧ殑鏃跺欙紝濡傛灉緙撳瓨瀛樺湪錛屽畠榪樿鍙栧嚭緙撳瓨鐨勭敓鎴愭椂闂村拰榪欎釜緙撳瓨鎵鏌ヨ鐨勮〃錛岀劧鍚庡幓鏌ユ壘榪欎簺琛ㄧ殑鏈鍚? 鏇存柊鏃墮棿錛屽鏋滄湁涓涓〃鍦ㄧ敓鎴愭椂闂村悗鏇存柊榪囦簡錛岄偅涔堣繖涓紦瀛樻槸鏃犳晥鐨勩?br />鍙互鐪嬪嚭錛屽彧瑕佹洿鏂拌繃涓涓〃錛岄偅涔堝嚒鏄秹鍙婂埌榪欎釜琛ㄧ殑鏌ヨ緙撳瓨灝卞け鏁堜簡錛屽洜姝ゆ煡璇㈢紦瀛樼殑鍛戒腑鐜囧彲鑳戒細姣旇緝浣庛?br />
Collection緙撳瓨
闇瑕佸湪hbm鐨刢ollection閲岄潰璁劇疆

鍋囧class鏄疌at錛宑ollection鍙玞hildren錛岄偅涔坋hcache閲岄潰閰嶇疆

maxElementsInMemory="20" eternal="false" timeToIdleSeconds="3600" timeToLiveSeconds="7200"
overflowToDisk="true" />
Collection鐨勭紦瀛樺拰鍓嶉潰鏌ヨ緙撳瓨鐨刲ist涓鏍鳳紝涔熸槸鍙繚鎸佷竴涓瞚d錛屼絾瀹冧笉浼氬洜涓鴻繖涓〃鏇存柊榪囧氨澶辨晥錛屼竴涓猚ollection緙撳瓨浠呭湪榪欎釜collection閲岄潰鐨勫厓绱犳湁澧炲垹鏃舵墠澶辨晥銆?br />榪欐牱鏈変竴涓棶棰橈紝濡傛灉浣犵殑collection鏄牴鎹煇涓瓧孌墊帓搴忕殑錛屽綋鍏朵腑涓涓厓绱犳洿鏂頒簡璇ュ瓧孌墊椂錛屽鑷撮『搴忔敼鍙樻椂錛宑ollection緙撳瓨閲岄潰鐨勯『搴忔病鏈夊仛鏇存柊銆?br />
緙撳瓨絳栫暐
鍙緙撳瓨錛坮ead-only錛夛細娌℃湁浠涔堝ソ璇寸殑
璇?鍐欑紦瀛橈紙read-write錛?紼嬪簭鍙兘瑕佺殑鏇存柊鏁版嵁
涓嶄弗鏍肩殑璇?鍐欑紦瀛橈紙nonstrict-read-write錛夛細闇瑕佹洿鏂版暟鎹紝浣嗘槸涓や釜浜嬪姟鏇存柊鍚屼竴鏉¤褰曠殑鍙兘鎬у緢灝忥紝鎬ц兘姣旇鍐欑紦瀛樺ソ
浜嬪姟緙撳瓨錛坱ransactional錛夛細緙撳瓨鏀寔浜嬪姟錛屽彂鐢熷紓甯哥殑鏃跺欙紝緙撳瓨涔熻兘澶熷洖婊氾紝鍙敮鎸乯ta鐜錛岃繖涓垜娌℃湁鎬庝箞鐮旂┒榪?br />
璇誨啓緙撳瓨鍜屼笉涓ユ牸璇誨啓緙撳瓨鍦ㄥ疄鐜頒笂鐨勫尯鍒湪浜庯紝璇誨啓緙撳瓨鏇存柊緙撳瓨鐨勬椂鍊欎細鎶婄紦瀛橀噷闈㈢殑鏁版嵁鎹㈡垚涓涓攣錛屽叾浠栦簨鍔″鏋滃幓鍙栫浉搴旂殑緙撳瓨鏁版嵁錛屽彂鐜拌閿佷綇浜嗭紝鐒跺悗灝辯洿鎺ュ彇鏁版嵁搴撴煡璇€?br />鍦╤ibernate2.1鐨別hcache瀹炵幇涓紝濡傛灉閿佷綇閮ㄥ垎緙撳瓨鐨勪簨鍔″彂鐢熶簡寮傚父錛岄偅涔堢紦瀛樹細涓鐩磋閿佷綇錛岀洿鍒?0縐掑悗瓚呮椂銆?br />涓嶄弗鏍艱鍐欑紦瀛樹笉閿佸畾緙撳瓨涓殑鏁版嵁銆?br />

浣跨敤浜岀駭緙撳瓨鐨勫墠緗潯浠?/span>
浣? 鐨刪ibernate紼嬪簭瀵規暟鎹簱鏈夌嫭鍗犵殑鍐欒闂潈錛屽叾浠栫殑榪涚▼鏇存柊浜嗘暟鎹簱錛宧ibernate鏄笉鍙兘鐭ラ亾鐨勩備綘鎿嶄綔鏁版嵁搴撳繀闇鐩存帴閫氳繃 hibernate錛屽鏋滀綘璋冪敤瀛樺偍榪囩▼錛屾垨鑰呰嚜宸變嬌鐢╦dbc鏇存柊鏁版嵁搴擄紝hibernate涔熸槸涓嶇煡閬撶殑銆俬ibernate3.0鐨勫ぇ鎵歸噺鏇存柊鍜屽垹 闄ゆ槸涓嶆洿鏂頒簩綰х紦瀛樼殑錛屼絾鏄嵁璇?.1宸茬粡瑙e喅浜嗚繖涓棶棰樸?br />榪欎釜闄愬埗鐩稿綋鐨勬鎵嬶紝鏈夋椂鍊檋ibernate鍋氭壒閲忔洿鏂般佸垹闄ゅ緢鎱紝浣嗘槸浣犲嵈涓嶈兘鑷繁鍐檍dbc鏉ヤ紭鍖栵紝寰堥儊闂峰惂銆?br />SessionFactory涔熸彁渚涗簡縐婚櫎緙撳瓨鐨勬柟娉曪紝浣犱竴瀹氳鑷繁鍐欎竴浜汮DBC鐨勮瘽錛屽彲浠ヨ皟鐢ㄨ繖浜涙柟娉曠Щ闄ょ紦瀛橈紝榪欎簺鏂規硶鏄細
void evict(Class persistentClass)
Evict all entries from the second-level cache.
void evict(Class persistentClass, Serializable id)
Evict an entry from the second-level cache.
void evictCollection(String roleName)
Evict all entries from the second-level cache.
void evictCollection(String roleName, Serializable id)
Evict an entry from the second-level cache.
void evictQueries()
Evict any query result sets cached in the default query cache region.
void evictQueries(String cacheRegion)
Evict any query result sets cached in the named query cache region.
涓? 榪囨垜涓嶅緩璁繖鏍峰仛錛屽洜涓鴻繖鏍峰緢闅劇淮鎶ゃ傛瘮濡備綘鐜板湪鐢↗DBC鎵歸噺鏇存柊浜嗘煇涓〃錛屾湁3涓煡璇㈢紦瀛樹細鐢ㄥ埌榪欎釜琛紝鐢╡victQueries(String cacheRegion)縐婚櫎浜?涓煡璇㈢紦瀛橈紝鐒跺悗鐢╡vict(Class persistentClass)縐婚櫎浜哻lass緙撳瓨錛岀湅涓婂幓濂藉儚瀹屾暣浜嗐備笉榪囧摢澶╀綘娣誨姞浜嗕竴涓浉鍏蟲煡璇㈢紦瀛橈紝鍙兘浼氬繕璁版洿鏂拌繖閲岀殑縐婚櫎浠g爜銆傚鏋滀綘鐨? jdbc浠g爜鍒板閮芥槸錛屽湪浣犳坊鍔犱竴涓煡璇㈢紦瀛樼殑鏃跺欙紝榪樼煡閬撳叾浠栦粈涔堝湴鏂逛篃瑕佸仛鐩稿簲鐨勬敼鍔ㄥ悧錛?br />
----------------------------------------------------

鎬葷粨錛?/span>
涓嶈鎯沖綋鐒剁殑浠ヤ負緙撳瓨涓瀹氳兘鎻愰珮鎬ц兘錛屼粎浠呭湪浣犺兘澶熼┚椹畠騫朵笖鏉′歡鍚堥傜殑鎯呭喌涓嬫墠鏄繖鏍風殑銆俬ibernate鐨勪簩綰х紦瀛橀檺鍒惰繕鏄瘮杈冨鐨勶紝涓嶆柟渚跨敤jdbc鍙兘浼氬ぇ澶х殑闄嶄綆鏇存柊鎬ц兘銆傚湪涓嶄簡瑙e師鐞嗙殑鎯呭喌涓嬩貢鐢紝鍙兘浼氭湁1+N鐨勯棶棰樸備笉褰撶殑浣跨敤榪樺彲鑳藉鑷磋鍑鴻剰鏁版嵁銆?br />濡傛灉鍙椾笉浜唄ibernate鐨勮澶氶檺鍒訛紝閭d箞榪樻槸鑷繁鍦ㄥ簲鐢ㄧ▼搴忕殑灞傞潰涓婂仛緙撳瓨鍚с?br />鍦? 瓚婇珮鐨勫眰闈笂鍋氱紦瀛橈紝鏁堟灉灝變細瓚婂ソ銆傚氨濂藉儚灝界紓佺洏鏈夌紦瀛橈紝鏁版嵁搴撹繕鏄瀹炵幇鑷繁鐨勭紦瀛橈紝灝界鏁版嵁搴撴湁緙撳瓨錛屽挶浠殑搴旂敤紼嬪簭榪樻槸瑕佸仛緙撳瓨銆傚洜涓哄簳灞傜殑緙撳瓨 瀹冨茍涓嶇煡閬撻珮灞傝鐢ㄨ繖浜涙暟鎹共浠涔堬紝鍙兘鍋氱殑姣旇緝閫氱敤錛岃岄珮灞傚彲浠ユ湁閽堝鎬х殑瀹炵幇緙撳瓨錛屾墍浠ュ湪鏇撮珮鐨勭駭鍒笂鍋氱紦瀛橈紝鏁堟灉涔熻濂戒簺鍚с?br />

緇堜簬鍐欏畬浜嗭紝濂界瘡鈥︹?/cache>


鑹懼皹 2006-08-14 15:11 鍙戣〃璇勮
]]>
鏀惰棌涓綃噀xtremeComponents浣跨敤AJAX 鎸囧崡http://www.tkk7.com/aichan/articles/38314.html鑹懼皹鑹懼皹Thu, 30 Mar 2006 10:43:00 GMThttp://www.tkk7.com/aichan/articles/38314.htmlhttp://www.tkk7.com/aichan/comments/38314.htmlhttp://www.tkk7.com/aichan/articles/38314.html#Feedback0http://www.tkk7.com/aichan/comments/commentRss/38314.htmlhttp://www.tkk7.com/aichan/services/trackbacks/38314.html
extremeComponents浣跨敤AJAX 鎸囧崡
Mon, 27 Mar 2006 08:09:00 GMT

AJAX 鎸囧崡

榪涜涓?..


鍦╡XtremeTable涓嬌鐢ˋJAX闈炲父綆鍗曪紝瀵圭幇鏈夊姛鑳界殑鎵╁睍涔熼潪甯告柟渚褲?AJAX鏁村悎涓涓渶寮哄ぇ鐨勫湴鏂規槸瀹冧笉闇瑕佹暣鍚堛備綘鍙互鑷敱鍦頒嬌鐢ㄤ換浣曚綘鎯寵浣跨敤鐨凙JAX宸ュ叿鍖呫傛墍鏈変綘瑕佸仛鐨勫氨鏄細褰撹〃鐨刟ction琚皟鐢ㄦ椂錛屽憡璇?eXtremeTable浣跨敤浠涔坖avascript銆傝〃鐨刟ctions鍖呮嫭錛氳繃婊ゃ佹帓搴忋佸垎欏點佹樉紺虹殑琛屾暟鍜屽鍑恒?

鍦ㄦ垜鑷繁鐨勭ず渚嬩腑鎴戝皢浣跨敤闈炲父閰風殑DWR宸ュ叿鍖呫侱WR 闇瑕佺殑綺樺悎浠g爜闈炲父灝戯紝榪欐牱鎴戜滑鍙渶瑕佸叧娉ㄥ浣曟瀯寤鴻〃銆備綘鍙互閫氳繃鏈珯紺轟緥鐪嬪埌鏁堟灉!

Assembler Example

鏈ず渚嬩腑灝嗛渶瑕佸畨瑁匘WR宸ュ叿鍖咃紝鍒涘緩POJO鏉ユ瀯閫犺〃騫跺垱寤哄寘鍚玡XtremeTable鐨凧SP欏甸潰銆?

瀹夎DWR

棣栧厛瑕佸仛鐨勫氨鏄?a rel="nofollow" title="http://getahead.ltd.uk/dwr/download" class="external text" >涓嬭澆DWR宸ュ叿鍖呫備綘搴旇嫻忚緗戠珯鐨勪嬌鐢ㄨ鏄庯紝涓嶈繃涓嬮潰鏄垜璁╁畠絎﹀悎鎴戠殑闇瑕佹潵宸ヤ綔鎵榪涜鐨勬搷浣?

  • 灝哾wr-1.1.jar鎷瘋礉鍒癢EB-INF/lib鐩綍
  • 鍦╓EB-INF鐩綍涓嬪垱寤轟竴涓猟wr.xml鏂囦歡
<!DOCTYPE dwr PUBLIC
"-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN"
"http://www.getahead.ltd.uk/dwr/dwr10.dtd">

<dwr>
<allow>
<create creator="new" javascript="Assembler">
<param name="class" value="org.extremesite.controller.Assembler"/>
<include method="getTable"/>
</create>
</allow>
<signatures>
<![CDATA[
import java.util.Map;
import java.util.List;
import org.extremesite.controller.Assembler;
import javax.servlet.http.HttpServletRequest;
Assembler.getTable(Map<String, List> parameterMap, HttpServletRequest request);
]]>
</signatures>
</dwr>

綆鑰岃█涔嬶紙In a nutshell錛夊垱寤猴紙create錛夋爣絳懼厑璁稿綋鏂規硶琚皟鐢ㄦ椂錛屽弬鐓ф瀯寤鴻〃闇瑕佺殑POJO銆傜鍚嶏紙signature錛夋爣絳懼0鏄庝簡琚皟鐢ㄦ柟娉曚嬌鐢ㄧ殑瀹為檯 綾誨瀷銆?鏈ず渚嬬殑Assembler綾葷殑getTable鏂規硶灝嗛氳繃浼犲叆涓涓狹ap錛堝寘鍚玣orm鍙傛暟錛夊拰HttpServletRequest銆?

  • 鍦╓EB-INF/web.xml涓DWR servlet榪涜澹版槑
  <servlet>
<servlet-name>dwr-invoker</servlet-name>
<display-name>DWR Servlet</display-name>
<servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>true</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>dwr-invoker</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping>

浠ヤ笂灝卞畬鎴愪簡DWR servlet鐨勮緗紝瀹冭鐢ㄦ潵璋冪敤浣犵殑POJO銆傞櫎浜嗚緗畠錛屼綘涓嶉渶瑕佸榪欎釜servlet鏈夋洿澶氱殑浜嗚В銆?

鍒涘緩POJO

DWR浣跨敤錛坵orks with錛塒OJOs銆傝繖涓潪甯哥鍚堟垜浠殑闇瑕侊紝鍥犱負eXtremeTable鏈夎凍澶熺殑API浣跨敤Jsp鏍囩鏉ユ瀯閫犺〃銆傚疄闄呬笂錛孞SP鏍囩鍙笉榪囨槸eXtremeTable Java API鐨勫墠绔傞鍏堬紝鎴戝皢灞曠ず鏋勯犺〃鐨勬柟娉曪細

public class Assembler {
private Object build(TableModel model, Collection presidents) throws Exception {
Table table = model.getTableInstance();
table.setTableId("assembler");
table.setItems(presidents);
table.setAction(model.getContext().getContextPath() + "/assembler.run");
table.setTitle("Presidents");
table.setOnInvokeAction("buildTable('assembler')");
model.addTable(table);

Export export = model.getExportInstance();
export.setView(TableConstants.VIEW_XLS);
export.setViewResolver(TableConstants.VIEW_XLS);
export.setImageName(TableConstants.VIEW_XLS);
export.setText(TableConstants.VIEW_XLS);
export.setFileName("output.xls");
model.addExport(export);

Row row = model.getRowInstance();
row.setHighlightRow(Boolean.FALSE);
model.addRow(row);

Column columnName = model.getColumnInstance();
columnName.setProperty("fullName");
columnName.setIntercept((AssemblerIntercept.class).getName());
model.addColumn(columnName);

Column columnNickName = model.getColumnInstance();
columnNickName.setProperty("nickName");
model.addColumn(columnNickName);

Column columnTerm = model.getColumnInstance();
columnTerm.setProperty("term");
model.addColumn(columnTerm);

Column columnBorn = model.getColumnInstance();
columnBorn.setProperty("born");
columnBorn.setCell(TableConstants.DATE);
model.addColumn(columnBorn);

Column columnDied = model.getColumnInstance();
columnDied.setProperty("died");
columnDied.setCell(TableConstants.DATE);
model.addColumn(columnDied);

Column columnCareer = model.getColumnInstance();
columnCareer.setProperty("career");
model.addColumn(columnCareer);

return model.assemble();
}
}

涓婇潰鐨勫ぇ閮ㄥ垎浠g爜鏄嚜瑙i噴鎬х殑錛屼綘灝嗗湪涓嬮潰鐪嬪埌濡備綍鏋勯犱竴涓猅ableModel錛屼絾鏄鍏堜綘搴旇娉ㄦ剰鍒癟ableModel鏄瀯閫犺〃鏃墮渶瑕佷氦浜掔殑 鍞竴瀵硅薄銆傛瀯閫犺〃鐨勭涓姝ュ氨鏄嬌鐢═ableModel鏉ュ垱寤篢able銆丷ow銆丆olumn鍜孍xport銆?涓鏃︿綘鍒涘緩浜嗕竴涓猰odel瀵硅薄錛屼綘鍙渶瑕佸皢瀹冩坊鍔犲埌model涓傞櫎闈炰綘灝嗗畠娣誨姞鍒癟ableModel錛屽惁鍒欑殑璇漨odel灝嗕笉浼氭槸鐢ㄥ畠銆傛墍鏈変笢瑗垮凡 緇忔瀯寤哄ソ鍚庯紝浣犲彧闇瑕佽皟鐢╩odel.assemble()鏂規硶鏉ユ瀯閫犺〃浜嗐?

鍙兘table.setOnInvokeAction("buildTable('assembler')");鏄渶鏈夎叮鐨勮皟鐢ㄣ傚綋浣犱嬌鐢ㄨ〃鐨刟ctions(緲婚〉銆佽繃婊ゃ佹帓搴?.....)錛岃繖涓猨avascript鏂規硶灝嗚璋冪敤銆傚鏋滆〃鐨刼nInvokeAction絀虹櫧錛屽垯榛樿鐨刯avascript鏂規硶灝嗚鎻愪氦錛坰ubmit錛?錛屾濡備綘鎵鏈熸湜鐨勯偅鏍楓?

Assembler綾葷殑鍙︿竴涓柟娉?--getTable()錛?

public class Assembler {
public String getTable(Map parameterMap, HttpServletRequest request) {
WebApplicationContext webApplicationContext = WebApplicationContextUtils.getWebApplicationContext(request.getSession().getServletContext());

PresidentsDao presidentsDao = (PresidentsDao) webApplicationContext.getBean("presidentsDao");
Collection presidents = presidentsDao.getPresidents();

Context context = null;
if (parameterMap == null) {
context = new HttpServletRequestContext(request);
} else {
context = new HttpServletRequestContext(request, parameterMap);
}

TableModel model = new TableModelImpl(context);
try {
return build(model, presidents).toString();
} catch (Exception e) {
e.printStackTrace();
}

return "";
}
}

榪欎釜鏂規硶璋冪敤姣旇緝棰戠箒錛屽畠鎵ц鍙岄噸鑱岃矗銆傚畠闇瑕佽Controller錛堝鏋滀嬌鐢⊿pring鐨勮瘽錛夊湪絎竴嬈¤皟鐢紝濡傛灉浣跨敤Struts灝辯瓑鍚屼簬Action綾匯?/em> 闅忓悗錛?褰撲嬌鐢ˋJAX鏃訛紝榪欎釜鏂規硶涔熼渶瑕佽璋冪敤錛屼絾鏄繖嬈″皢浼犲叆涓涓畾鍒剁殑parameterMap銆俻arameterMap灝嗗寘鍚玡XtremeTable浣跨敤AJAX闇瑕佺殑鎵鏈夊弬鏁般傚綋浣犵湅浜?Controller鍜孞SP鍚庯紝榪欑偣灝嗘洿鍔犳竻鏅般?

Controller

public class AssemblerController extends AbstractController {
public String successView;

public void setSuccessView(String successView) {
this.successView = successView;
}

protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception {
ModelAndView mv = new ModelAndView(successView);
Assembler assembler = new Assembler();
Object viewData = assembler.getTable(null, request);
request.setAttribute("assembler", viewData);
return mv;
}
}

controller鍦ㄨ絎竴嬈¤皟鐢ㄦ椂鏉ユ瀯寤鴻〃銆傚畠璋冪敤POJO騫跺皢琛ㄤ紶緇檙equest銆傛敞鎰忕┖鍊鹼紙null錛夊浣曚嬌鐢╬arameterMap浼犺緭銆傝繖鏄洜涓虹涓嬈¤〃琚瀯閫犳椂錛屾病鏈夊搴旇〃闇瑕佺煡閬撶殑actions銆?

JSP

閫氳繃寮曞叆(importing)鍚堥傜殑javascript鏂囦歡鏉ュ紑濮嬫瀯寤篔SP欏甸潰銆傚敮涓闇瑕佸寘鍚繘宸ョ▼鐨刯avascript鏂囦歡鏄痚xtremecomponents.js錛屽叾瀹冪殑javascript鏂囦歡鐢蟲槑閮芥槸DWR浣跨敤鐨勩?

  <script type="text/javascript" src="<c:url value="/dwr/interface/Assembler.js"/>"></script>
<script type="text/javascript" src="<c:url value="/dwr/engine.js"/>"></script>
<script type="text/javascript" src="<c:url value="/dwr/util.js"/>"></script>
<script type="text/javascript" src="<c:url value="/js/extremecomponents.js"/>"></script>

鎺ョ潃錛屾彃鍏ラ挬瀛愶紙hook)鏉ユ樉紺鴻〃錛宒iv琚敤鏉ヨ皟鐢╥nnerHtml騫舵瀯寤烘柊鐨勬爣絳俱?

  <div id="tableDiv">
<c:out value="$" escapeXml="false"/>
</div>

鏈鍚庯紝娣誨姞javascript鏉ヨ皟鐢―WR鐨勯挬瀛愶紙hooks錛夈?

<script type="text/javascript">
function buildTable(form) {
var parameterMap = getParameterMap(form);
Assembler.getTable(parameterMap, showTable);
}

function showTable(table) {
document.getElementById('tableDiv').innerHTML=table;
}
</script>

getParameterMap()鏂規硶鍖呭惈鍦╡xtremecomponents.js鏂囦歡涓紝灝嗙殑鍒版墍鏈夌殑form鍙傛暟銆備綘闇瑕佷紶鍏ヤ竴涓?form id鐨勫弬鐓с傝浣忥紝eXtremeTable鏈川涓婃槸涓涓猣orm緇勫緩錛宼ableid浣滀負form id浣跨敤銆傞粯璁ょ殑tableId涓篹c錛屼絾鏄綘閫氬父鎯寵璁劇疆tableId錛屼互紺哄ぇ瀹惰兘鏇村鏄撻槄璇諱綘鐨勪唬鐮併備綘灝嗕嬌鐢╬arameterMap璋冪敤 POJO鐨刧etTable鏂規硶銆俿howTable鏄竴涓猚allback鍛婅瘔DWR褰撲粠getTable()鏂規硶榪斿洖鏃跺皢璋冪敤浠涔堟搷浣溿?

緇撹

鏈寚鍗楁弿榪頒簡鍦╡XtremeTable涓嬌鐢ˋJAX鎵闇瑕佺殑姝ラ銆傞渶瑕佺暀蹇冪殑涓涓富瑕佷簨鎯呮槸娌℃湁鍜孉JAX鍙戠敓瀹為檯鏁村悎銆傚綋琛ㄧ殑actions 琚嬌鐢ㄦ槸錛屼綘鍙渶瑕佺畝鍗曞湴鍛婅瘔eXtremeTable浠涔坖avascript灝嗚璋儁ong銆傚彟涓涓簨鎯呮槸錛岄氳繃鏈ず渚嬫垜浠彲浠ョ煡閬揇WR宸ュ叿鍖呬嬌鐢?POJOs騫惰兘澶熺畝鍗曞湴琚換浣曟鏋朵嬌鐢ㄣ?





鑹懼皹 2006-03-30 18:43 鍙戣〃璇勮
]]>
Javascript callback and function pointerhttp://www.tkk7.com/aichan/articles/37200.html鑹懼皹鑹懼皹Fri, 24 Mar 2006 05:41:00 GMThttp://www.tkk7.com/aichan/articles/37200.htmlhttp://www.tkk7.com/aichan/comments/37200.htmlhttp://www.tkk7.com/aichan/articles/37200.html#Feedback0http://www.tkk7.com/aichan/comments/commentRss/37200.htmlhttp://www.tkk7.com/aichan/services/trackbacks/37200.html綆鍗曠殑浠g爜紺轟緥錛?br /><!--
function show(cbfunction,name){
        return function(sex){//榪欓噷榪斿洖涓涓湁鍙傛暟鐨凢unction
            cbfunction(name);//璋冪敤鍙傛暟浼犲叆鐨勫嚱鏁?/span>
            alert(sex);
        }
    }
function hello(name){
       alert("hello " + name);
}
var fn = show(hello,"aichen");//榪斿洖鐨勬槸涓涓嚱鏁?fn 涓哄嚱鏁版寚閽?/span>
fn("boy");
--//>
have fun!^_^


鑹懼皹 2006-03-24 13:41 鍙戣〃璇勮
]]>
主站蜘蛛池模板: 特级毛片免费播放| 日韩精品无码一区二区三区免费| 亚洲国产精品一区二区三区久久| 污视频网站免费观看| 好看的亚洲黄色经典| 亚洲大片免费观看| 亚洲精品伦理熟女国产一区二区| 在线亚洲精品自拍| 亚洲国产精品无码久久久蜜芽| 最近最好最新2019中文字幕免费 | 亚洲精品福利你懂| 免费在线观看黄网站| 亚洲人成图片网站| 亚洲国产综合人成综合网站| 99精品视频在线观看免费专区 | 亚洲黄色网站视频| 国产特级淫片免费看| 久久免费视频99| 亚洲AV永久无码天堂影院| 久久精品亚洲综合| 国产嫩草影院精品免费网址| 18未年禁止免费观看| 一本久久免费视频| 久久精品国产亚洲AV久| 亚洲女初尝黑人巨高清| 日韩精品视频免费网址| 三年片在线观看免费观看大全一| 久久亚洲精品无码gv| 亚洲理论在线观看| 国产成人A人亚洲精品无码| 永久免费观看的毛片的网站| 每天更新的免费av片在线观看| 亚洲免费无码在线| 亚洲人成网站18禁止| 99人中文字幕亚洲区| 4338×亚洲全国最大色成网站| 成人在线免费观看| 小草在线看片免费人成视久网| 一二三区免费视频| 亚洲国产av玩弄放荡人妇| 亚洲国产中文在线视频|