锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲偷自精品三十六区,亚洲第一综合天堂另类专,亚洲AV男人的天堂在线观看http://www.tkk7.com/killvin/category/8033.htmlzh-cnWed, 28 Feb 2007 03:53:09 GMTWed, 28 Feb 2007 03:53:09 GMT60騫跺彂闂鍙?qiáng)鎺у埗鎵媽D?http://www.tkk7.com/killvin/archive/2006/04/06/39542.htmlkillvinkillvinThu, 06 Apr 2006 02:57:00 GMThttp://www.tkk7.com/killvin/archive/2006/04/06/39542.html http://www.cnblogs.com/zhenyulu/articles/208799.html

絎?绔?騫跺彂闂鍙?qiáng)鎺у埗鎵媽D?/h1>

浠涔堟槸騫跺彂闂錛熷亣璁炬湁榪欎箞涓瀹朵功鍚э紝欏懼鍙互鍒伴偅閲屽枬鑼惰涔︺傞【瀹㈡嬁鐫閫夊ソ瑕佽鐨勫浘涔﹀埌鏌滃彴鐧昏錛岀劧鍚庢壘涓湴鏂瑰幓闃呰錛屼復(fù)璧版椂灝嗗浘涔﹀綊榪樺簵瀹躲傛湁涓澶╋紝涓涓【瀹㈢浉涓簡(jiǎn)涓鏈功鍚庢瑕佹嬁鍘葷?rùn)昏畮图屽彟涓涓【瀹㈢殑鎵嬩篃鎶撲綇浜?jiǎn)杩欎粎鏈夌殑涓鏈功錛屽茍鍙戦棶棰樺嚭鐜頒簡(jiǎn)銆備袱涓【瀹㈣璇誨悓涓鏈功錛屼簰涓嶇浉璁╋紝榪欒搴椾富浼ら忎簡(jiǎn)鑴戠瓔銆傝繖涓渚嬩粎浠呮槸浼楀騫跺彂闂涓殑涓涓井灝忛儴鍒嗭紝浣嗕粠涓垜浠彲浠ョ湅鍑哄茍鍙戦棶棰樹富瑕佸嚭鐜板湪澶氫釜鐢ㄦ埛瀵規(guī)湁闄愯祫婧愯繘琛岃闂殑鏃跺欙紝濡傛灉瑙e喅涓嶅ソ浼?xì)鐩存帴濯?jiǎng)鍝嶇郴緇熺殑鏈夋晥銆佹甯歌繍琛屻傛暟鎹簱鏄竴涓叡浜殑璧勬簮錛屽茍鍙戦棶棰樼殑鍑虹幇鏄繀涓嶅彲鍏嶇殑錛屽浣曡瘑鍒茍鍙戠被鍨嬪茍鍔犱互鎺у埗鏄繖涓绔犻噸鐐硅璁茶堪鐨勫唴瀹廣?/p>

鏈珷灝嗗垎鎴愪袱澶ч儴鍒嗭紝涓閮ㄥ垎涓昏璁睼isual FoxPro涓茍鍙戞帶鍒舵満鍒躲俈FP涓茍鍙戞帶鍒剁浉瀵圭畝鍗曪紝鏁版嵁鍔犻攣鐨勫艦寮忔瘮杈冨崟涓錛岄潪甯擱傚悎浣滀負(fù)鍒濇浜?jiǎn)瑙rq跺彂闂鐨勫垏鍏ョ偣銆傜浜岄儴鍒嗕互SQL Server 2000銆丄DO.NET浠ュ強(qiáng)C#涓轟富瑕佸伐鍏鳳紝娣卞叆浜?jiǎn)瑙rq跺彂涓鑷存ч棶棰樸佸皝閿佸崗璁佷簨鍔¢殧紱葷瓑鍐呭錛岄毦搴︾浉瀵硅緝娣便傝薄涓浜涙洿涓烘繁鍏ョ殑騫跺彂鎺у埗鎵嬫錛屼緥濡傚綺掑害灝侀攣鍜屾剰璞¢攣絳夊唴瀹瑰湪鏈珷涓皢涓嶅仛娣卞叆璁ㄨ錛屾劅鍏磋叮鍙互鍙傝冪浉鍏充功綾嶃?/p>

[瀹炲湪涓嶅ソ鎰忔滳OPY鍒漢鐨勬垚鏋滐紝涓嶈繃榪欑瘒鏂囩珷鍑哄鐨勭簿褰╋紝灝嗗茍鍙戞搷浣滅殑鏉ラ緳鍘昏剦璇寸殑娓呮竻妤氭錛屼篃鏄垜姝h鎵劇殑錛屾瘮JAVAEYE涓婇潰鎵璋撶殑涓撳鍙毞鐫浠涔?鎮(zhèn)茶閿?銆?涔愯閿?鑰屼笉瑙f槸鍘熷洜瑕佸己鐨勫錛佸煎緱鏀惰棌]



killvin 2006-04-06 10:57 鍙戣〃璇勮
]]>
About unsaved-value [resource : javaeye] http://www.tkk7.com/killvin/archive/2006/03/02/33297.htmlkillvinkillvinThu, 02 Mar 2006 12:45:00 GMThttp://www.tkk7.com/killvin/archive/2006/03/02/33297.html褰撲綘鏄懼紡鐨勪嬌鐢╯ession.save()鎴栬卻ession.update()鎿嶄綔涓涓璞$殑鏃跺欙紝瀹為檯涓婃槸鐢ㄤ笉鍒?SPAN style="COLOR: #ffa34f">unsaved-value鐨勩傛煇浜涙儏鍐典笅(鐖跺瓙琛ㄥ叧鑱斾繚瀛?錛屽綋浣犲湪紼嬪簭涓茍娌℃湁鏄懼紡鐨勪嬌鐢╯ave鎴栬卽pdate涓涓寔涔呭璞★紝閭d箞Hibernate闇瑕佸垽鏂鎿嶄綔鐨勫璞$┒绔熸槸涓涓凡緇忔寔涔呭寲榪囩殑鎸佷箙瀵硅薄錛屾槸涓涓皻鏈鎸佷箙鍖栬繃鐨勫唴瀛樹復(fù)鏃跺璞°備緥濡傦細(xì)

java浠g爜: 

  Session session = ...;
  Transaction tx = ...;
  
  Parent parent = (Parent) session.load(Parent.class, id);
  
  Child child = new Child();
  child.setParent(parent);
  child.setName("sun");
  
 10 parent.addChild(child);
 11 s.update(parent);
 12 
 13 s.flush();
 14 tx.commit();
 15 s.close();



鍦ㄤ笂渚嬩腑錛岀▼搴忓茍娌℃湁鏄懼紡鐨剆ession.save(child); 閭d箞Hibernate闇瑕佺煡閬揷hild絀剁珶鏄竴涓復(fù)鏃跺璞★紝榪樻槸宸茬粡鍦ㄦ暟鎹簱涓湁鐨勬寔涔呭璞°傚鏋渃hild鏄竴涓柊鍒涘緩鐨勪復(fù)鏃跺璞?鏈緥涓氨鏄繖縐嶆儏鍐?錛岄偅涔圚ibernate搴旇鑷姩浜х敓session.save(child)榪欐牱鐨勬搷浣滐紝濡傛灉child鏄凡緇忓湪鏁版嵁搴撲腑鏈夌殑鎸佷箙瀵硅薄錛岄偅涔圚ibernate搴旇鑷姩浜х敓session.update(child)榪欐牱鐨勬搷浣溿?

鍥犳鎴戜滑闇瑕佹殫紺轟竴涓婬ibernate錛岀┒绔焎hild瀵硅薄搴旇瀵瑰畠鑷姩save榪樻槸update銆傚湪涓婁緥涓紝鏄劇劧鎴戜滑搴旇鏆楃ずHibernate瀵筩hild鑷姩save錛岃屼笉鏄嚜鍔╱pdate銆傞偅涔圚ibernate濡備綍鍒ゆ柇絀剁珶瀵筩hild鏄痵ave榪樻槸update鍛紵瀹冧細(xì)鍙栦竴涓媍hild鐨勪富閿睘鎬?child.getId() 錛岃繖閲屽亣璁緄d鏄?java.lang.Integer綾誨瀷鐨勩傚鏋滃彇鍒扮殑Id鍊煎拰hbm鏄犲皠鏂囦歡涓寚瀹氱殑unsave-value鐩哥瓑錛岄偅涔圚ibernate璁や負(fù)child鏄柊鐨勫唴瀛樹復(fù)鏃跺璞★紝鍙戦乻ave錛屽鏋滀笉鐩哥瓑錛岄偅涔圚ibernate璁や負(fù)child鏄凡緇忔寔涔呰繃鐨勫璞★紝鍙戦乽pdate銆?

unsaved-value="null" (榛樿鎯呭喌錛岄傜敤浜庡ぇ澶氭暟瀵硅薄綾誨瀷涓婚敭 Integer/Long/String/...)

褰揌ibernate鍙栦竴涓媍hild鐨処d錛屽彇鍑烘潵鐨勬槸null(鍦ㄤ笂渚嬩腑鑲畾鍙栧嚭鏉ョ殑鏄痭ull)錛屽拰unsaved-value璁懼畾鍊肩浉絳夛紝鍙戦乻ave(child)

褰揌ibernate鍙栦竴涓媍hild鐨刬d錛屽彇鍑烘潵鐨勪笉鏄痭ull錛岄偅涔堝拰unsaved-value璁懼畾鍊間笉鐩哥瓑錛屽彂閫乽pdate(child)

渚嬪涓嬮潰鐨勬儏鍐碉細(xì)

java浠g爜: 

  Session session = ...;
  Transaction tx = ...;
  
  Parent parent = (Parent) session.load(Parent.class, id);
  Child child = (Child) session.load(Child.class, childId);
  
  child.setParent(parent);
  child.setName("sun");
  
 10 parent.addChild(child);
 11 s.update(parent);
 12 
 13 s.flush();
 14 tx.commit();
 15 s.close();



child宸茬粡鍦ㄦ暟鎹簱涓湁浜?jiǎn)锛屾槸涓涓寔涔呭寲鐨勫璞★紝涓嶆槸鏂板垱寤虹殑錛屽洜姝ゆ垜浠笇鏈汬ibernate鍙戦乽pdate(child)錛屽湪璇ヤ緥涓紝Hibernate鍙栦竴涓媍hild.getId()錛屽拰unsave-value鎸囧畾鐨刵ull姣斿涓涓嬶紝鍙戠幇涓嶇浉絳夛紝閭d箞鍙戦乽pdate(child)銆?

BTW: parent瀵硅薄涓嶉渶瑕佹搷蹇?jī)锛屽洜湄?fù)紼嬪簭鏄懼紡鐨勫parent鏈塴oad鎿嶄綔鍜寀pdate鐨勬搷浣滐紝涓嶉渶瑕丠ibernate鑷繁鏉ュ垽鏂┒绔熸槸save榪樻槸update浜?jiǎn)銆傛垜浠娉ㄦ剰鐨勫彧鏄痗hild瀵硅薄鐨勬搷浣溿傚彟澶?SPAN style="COLOR: #ffa34f">unsaved-value
鏄畾涔夊湪Child綾葷殑涓婚敭灞炴т腑鐨勩?

java浠g爜: 

 1 <class name="Child" table="child">
 2 <id column="id" name="id" type="integer" unsaved-value="null">
 3   <generator class="identity"/>
 4 </id>
 5 ...
 6 </class>



濡傛灉涓婚敭灞炴т笉鏄璞″瀷錛岃屾槸鍩烘湰綾誨瀷錛屽int/long/double/...錛岄偅涔堜綘闇瑕佹寚瀹氫竴涓暟鍊煎瀷鐨?SPAN style="COLOR: #ffa34f">unsaved-value
錛屼緥濡傦細(xì)

java浠g爜: 

 1 unsaved-null="0"



鍦ㄦ鎻愰啋澶у錛屽緢澶氫漢浠ヤ負(fù)瀵逛富閿睘鎬у畾涔変負(fù)int/long錛屾瘮瀹氫箟涓篒nteger/Long榪愯鏁堢巼鏉ュ緱楂橈紝璁や負(fù)鍩烘湰綾誨瀷涓嶉渶瑕佽繘琛屽璞$殑灝佽鍜岃В鏋勬搷浣滐紝鍥犳鍠滄鎶婁富閿畾涔変負(fù)int/long鐨勩備絾瀹為檯涓婏紝Hibernate鍐呴儴鎬繪槸鎶婁富閿漿鎹負(fù)瀵硅薄鍨嬭繘琛屾搷浣滅殑錛屽氨綆椾綘瀹氫箟涓篿nt/long鍨嬬殑錛孒ibernate鍐呴儴涔熻榪涜涓嬈″璞℃瀯閫犳搷浣滐紝榪斿洖緇欎綘鐨勬椂鍊欙紝榪樿榪涜瑙f瀯鎿嶄綔錛屾晥鐜囧彲鑳藉弽鑰屼綆涔熻涓嶅畾銆傚洜姝ゅぇ瀹朵竴瀹氳鎵漿涓涓鐐癸紝鍦℉ibernate涓紝涓婚敭灞炴у畾涔変負(fù)鍩烘湰綾誨瀷錛屽茍涓嶈兘澶熸瘮瀹氫箟涓哄璞″瀷鏁堢巼鏉ョ殑楂橈紝鑰屼笖涔熷浜?jiǎn)寰堝楹荤儲(chǔ)锛屽洜姝ゅ圾櫘ぇ瀹朵娇鐢ㄥ璞″瀷鐨処nteger/Long瀹氫箟涓婚敭銆?

unsaved-value="none"鍜?
unsaved-value="any"

涓諱富瑕佺敤鍦ㄤ富閿睘鎬т笉鏄氳繃Hibernate鐢熸垚錛岃屾槸紼嬪簭鑷繁setId()鐨勬椂鍊欍?

鍦ㄨ繖閲屽璇翠竴鍙ワ紝寮虹儓寤鴻浣跨敤Hibernate鐨刬d generator錛屾垨鑰呬綘鍙互鑷繁鎵╁睍Hibernate鐨刬d generator錛岀壒鍒敞鎰忎笉瑕佷嬌鐢ㄦ湁瀹為檯鍚箟鐨勫瓧孌靛綋鍋氫富閿潵鐢紒渚嬪鐢ㄦ埛綾籙ser錛屽緢澶氫漢鍠滄鐢ㄧ敤鎴風(fēng)櫥闄嗗悕縐板仛涓轟富閿紝榪欐槸涓涓緢涓嶅ソ鐨勪範(fàn)鎯紝褰撶敤鎴風(fēng)被鍜屽叾浠栧疄浣撶被鏈夊叧鑱斿叧緋葷殑鏃跺欙紝涓囦竴浣犻渶瑕佷慨鏀圭敤鎴風(fēng)櫥闄嗗悕縐幫紝涓鏀瑰氨闇瑕佹敼濂藉嚑寮犺〃涓殑鏁版嵁銆傚伓鍚堟уお楂橈紝鑰屽鏋滀綘浣跨敤鏃犱笟鍔℃剰涔夌殑id generator錛岄偅涔堜慨鏀圭敤鎴峰悕縐幫紝灝卞彧淇敼user琛ㄥ氨琛屼簡(jiǎn)銆?

鐢辮繖涓棶棰樺紩鐢沖嚭鏉ワ紝濡傛灉浣犱弗鏍兼寜鐓ц繖涓師鍒欐潵璁捐鏁版嵁搴擄紝閭d箞浣犲熀鏈笂鏄敤涓嶅埌鎵嬪伐鏉etId()鐨勶紝浣犵敤Hibernate鐨刬d generator灝監(jiān)K浜?jiǎn)銆傚洜姝や綘涔熶笉闇瑕佷簡(jiǎn)瑙e綋

unsaved-value="none"鍜?
unsaved-value="any"

絀剁珶鏈変粈涔堝惈涔変簡(jiǎn)銆傚鏋滀綘闈炶鐢╝ssigned涓嶅彲錛岄偅涔堢戶緇В閲婁竴涓嬶細(xì)

unsaved-value="none" 鐨勬椂鍊欙紝鐢變簬涓嶈涓婚敭灞炴т負(fù)浠諱綍鍊鹼紝閮戒笉鍙兘涓簄one錛屽洜姝ibernate鎬繪槸瀵筩hild瀵硅薄鍙戦乽pdate(child)

unsaved-value="any" 鐨勬椂鍊欙紝鐢變簬涓嶈涓婚敭灞炴т負(fù)浠諱綍鍊鹼紝閮借偗瀹氫負(fù)any錛屽洜姝ibernate鎬繪槸瀵筩hild瀵硅薄鍙戦乻ave(child)

澶у鏁版儏鍐典笅錛屼綘鍙互閬垮厤浣跨敤assigned錛屽彧鏈夊綋浣犱嬌鐢ㄥ鍚堜富閿殑鏃跺欎笉寰椾笉鎵嬪伐setId()錛岃繖鏃跺欓渶瑕佷綘鑷繁鑰冭檻絀剁珶鎬庝箞璁劇疆unsaved-value浜?jiǎn)锛屾犚?guī)嵁浣犺嚜宸辯殑闇瑕佹潵瀹氥?

BTW: Gavin King寮虹儓涓嶅緩璁嬌鐢╟omposite-id錛屽己鐑堝緩璁嬌鐢║serType銆?

鍥犳錛屽鏋滀綘鍦ㄧ郴緇熻璁$殑鏃跺欙紝閬靛驚濡備笅鍘熷垯錛?

1銆佷嬌鐢℉ibernate鐨刬d generator鏉ョ敓鎴愭棤涓氬姟鎰忎箟鐨勪富閿紝涓嶄嬌鐢ㄦ湁涓氬姟鍚箟鐨勫瓧孌靛仛涓婚敭錛屼笉浣跨敤assigned銆?

2銆佷嬌鐢ㄥ璞$被鍨?String/Integer/Long/...)鏉ュ仛涓婚敭錛岃屼笉浣跨敤鍩虹綾誨瀷(int/long/...)鍋氫富閿?

3銆佷笉浣跨敤composite-id鏉ュ鐞嗗鍚堜富閿殑鎯呭喌錛岃屼嬌鐢║serType鏉ュ鐞嗚縐嶆儏鍐點(diǎn)?/SPAN>

閭d箞浣犳案榪滅敤鐨勬槸unsaved-value="null" 錛屼笉鍙兘鐢ㄥ埌any/none/..浜?jiǎn)銆?/SPAN>


killvin 2006-03-02 20:45 鍙戣〃璇勮
]]>
Update & SavaOrUpdate [author : robbine resource : Javaeye] http://www.tkk7.com/killvin/archive/2006/03/02/33296.htmlkillvinkillvinThu, 02 Mar 2006 12:44:00 GMThttp://www.tkk7.com/killvin/archive/2006/03/02/33296.html鍏堟潵鐐規(guī)蹇碉細(xì)

鍦℉ibernate涓紝鏈鏍稿績(jī)鐨勬蹇靛氨鏄PO鐨勭姸鎬佺鐞嗐備竴涓狿O鏈変笁縐嶇姸鎬侊細(xì)

1銆佹湭琚寔涔呭寲鐨刅O
姝ゆ椂灝辨槸涓涓唴瀛樺璞O錛岀敱JVM綆$悊鐢熷懡鍛ㄦ湡

2銆佸凡琚寔涔呭寲鐨凱O錛屽茍涓斿湪Session鐢熷懡鍛ㄦ湡鍐?
姝ゆ椂鏄犲皠鏁版嵁搴撴暟鎹紝鐢辨暟鎹簱綆$悊鐢熷懡鍛ㄦ湡

3銆佹浘琚寔涔呭寲榪囷紝浣嗙幇鍦ㄥ拰Session宸茬粡detached浜?jiǎn)锛屼互VO鐨勮韓浠藉湪榪愯
榪欑鍜孲ession宸茬粡detached鐨凱O榪樿兘澶熻繘鍏ュ彟涓涓猄ession錛岀戶緇繘琛孭O鐘舵佺鐞嗭紝姝ゆ椂瀹冨氨鎴愪負(fù)PO鐨勭浜岀鐘舵佷簡(jiǎn)銆?SPAN style="COLOR: red">榪欑PO瀹為檯涓婃槸璺ㄤ簡(jiǎn)Session榪涜浜?jiǎn)鐘舵佺淮鎶ょ殑銆?/SPAN>

鍦ㄤ紶緇熺殑JDO1.x涓紝PO鍙湁鍓嶉潰涓ょ鐘舵侊紝涓涓狿O涓鏃﹁劚紱籔M錛屽氨涓уけ浜?jiǎn)鐘舵佷簡(jiǎn)錛屼笉鍐嶅拰鏁版嵁搴撴暟鎹叧鑱旓紝鎴愪負(fù)涓涓函綺圭殑鍐呭瓨VO錛屽畠鍗充嬌榪涘叆涓涓柊鐨凱M錛屼篃涓嶈兘鎭㈠瀹冪殑鐘舵佷簡(jiǎn)銆?

Hibernate寮虹殑鍦版柟灝卞湪浜庯紝涓涓狿O鑴辯Session涔嬪悗錛岃繕鑳戒繚鎸佺姸鎬侊紝鍐嶈繘鍏ヤ竴涓柊鐨凷ession涔嬪悗錛屽氨鎭㈠鐘舵佺鐞嗙殑鑳藉姏錛屼絾姝ゆ椂鐘舵佺鐞嗛渶瑕佷嬌鐢╯ession.update鎴栬卻ession.saveOrUpdate錛岃繖灝辨槸Hibernate Reference涓彁鍒扮殑鈥渞equires a slightly different programming model 鈥?

鐜板湪姝e紡榪涘叆鏈瘽棰橈細(xì)

綆鍗曠殑鏉ヨ錛寀pdate鍜?SPAN style="COLOR: #ffa34f">saveOrUpdate鏄敤鏉ュ璺⊿ession鐨凱O榪涜鐘舵佺鐞嗙殑銆?/SPAN>

鍋囪浣犵殑PO涓嶉渶瑕佽法Session鐨勮瘽錛岄偅涔堝氨涓嶉渶瑕佺敤鍒幫紝渚嬪浣犳墦寮涓涓猄ession錛屽PO榪涜鎿嶄綔錛岀劧鍚庡叧闂紝涔嬪悗榪欎釜PO浣犱篃涓嶄細(xì)鍐嶇敤鍒頒簡(jiǎn)錛岄偅涔堝氨涓嶉渶瑕佺敤update銆?

鍥犳錛屾垜浠潵鐪嬬湅涓婁緥錛?
java浠g爜: 

 1 Foo foo=sess.load(Foo.class,id);
 2 foo.setXXX(xxx);
 3 sess.flush();
 4 sess.commit();



PO瀵硅薄foo鐨勬搷浣滈兘鍦ㄤ竴涓猄ession鐢熷懡鍛ㄦ湡鍐呭畬鎴愶紝鍥犳涓嶉渶瑕佹樉寮忕殑榪涜sess.update(foo)榪欐牱鐨勬搷浣溿侶ibernate浼?xì)鑷姩鐩憢箣鍒癴oo瀵硅薄宸茬粡琚慨鏀硅繃錛屽洜姝ゅ氨鍚戞暟鎹簱鍙戦佷竴涓猽pdate鐨剆ql銆傚綋鐒跺鏋滀綘闈炶鍔犱笂sess.update(foo)涔熶笉浼?xì)閿欏Q屽彧涓嶈繃榪欐牱鍋氭病鏈変換浣曞繀瑕併?

鑰岃法Session鐨勬剰鎬濆氨鏄榪欎釜PO瀵硅薄鍦⊿ession鍏抽棴涔嬪悗錛屼綘榪樻妸瀹冨綋鍋氫竴涓猇O鏉ョ敤錛屽悗鏉ヤ綘鍦⊿ession澶栭潰鍙堜慨鏀逛簡(jiǎn)瀹冪殑灞炴э紝鐒跺悗浣犲張鎯蟲墦寮涓涓猄ession錛屾妸VO鐨勫睘鎬т慨鏀逛繚瀛樺埌鏁版嵁搴撻噷闈紝閭d箞浣犲氨闇瑕佺敤update浜?jiǎn)銆?

java浠g爜: 

  // in the first session
  Cat cat = (Cat) firstSession.load(Cat.class, catId);
  Cat potentialMate = new Cat();
  firstSession.save(potentialMate);
  
  // in a higher tier of the application
  cat.setMate(potentialMate);
  
  // later, in a new session
 10 secondSession.update(cat)// update cat
 11 secondSession.update(mate); // update mate
 12 



cat鍜宮ate瀵硅薄鏄湪絎竴涓猻ession涓彇寰楃殑錛屽湪絎竴涓猻ession鍏抽棴涔嬪悗錛屼粬浠氨鎴愪簡(jiǎn)PO鐨勭涓夌鐘舵侊紝鍜孲ession宸茬粡detached鐨凱O錛屾鏃朵粬浠殑鐘舵佷俊鎭粛鐒惰淇濈暀涓嬫潵浜?jiǎn)銆傚綋浠栦滑榪涘叆絎簩涓猻ession涔嬪悗錛岀珛鍒誨氨鍙互榪涜鐘舵佺殑鏇存柊銆備絾鏄敱浜庡cat鐨勪慨鏀規(guī)搷浣滐細(xì)cat.setMate(potentialMate); 鏄湪Session澶栭潰榪涜鐨勶紝Hibernate涓嶅彲鑳界煡閬揷at瀵硅薄宸茬粡琚敼榪囦簡(jiǎn)錛岀浜屼釜Session騫朵笉鐭ラ亾榪欑淇敼錛屽洜姝や竴瀹氳鏄懼紡鐨勮皟鐢╯econdSession.update(cat); 閫氱煡Hibernate錛宑at瀵硅薄宸茬粡淇敼浜?jiǎn)锛屼綘蹇厵逭d彂閫乽pdate鐨剆ql浜?jiǎn)銆?

鎵浠pdate鐨勪綔鐢ㄥ氨鍦ㄤ簬姝わ紝瀹冨彧浼?xì)琚敤浜庡綋涓涓狿O瀵硅薄璺⊿ession榪涜鐘舵佸悓姝ョ殑鏃跺欐墠闇瑕佸啓銆傝屼竴涓狿O瀵硅薄褰撳畠涓嶉渶瑕佽法Session榪涜鐘舵佺鐞嗙殑鏃跺欙紝鏄笉闇瑕佸啓update鐨勩?

鍐嶈皥璋?SPAN style="COLOR: #ffa34f">saveOrUpdate
鐨勭敤鍦猴細(xì)

saveOrUpdate鍜寀pdate鐨勫尯鍒氨鍦ㄤ簬鍦ㄨ法Session鐨凱O鐘舵佺鐞嗕腑錛孒ibernate瀵筆O閲囧彇浣曠絳栫暐銆?

渚嬪褰撲綘鍐欎竴涓狣AOImpl鐨勬椂鍊欙紝璁ヽat瀵硅薄澧炲姞涓涓猰ate錛屽涓嬪畾涔夛細(xì)
java浠g爜: 

1 public void addMate(Cat cat, Mate mate) {
 2     Session session = ...;
 3     Transacton tx = ...;
 4     session.update(cat);
 5     cat.addMate(mate);
 6     tx.commit();
 7     session.close();
 8 };



鏄劇劧浣犳槸闇瑕佹妸Hibernate鐨勬搷浣滃皝瑁呭湪DAO閲岄潰鐨勶紝璁╀笟鍔″眰鐨勭▼搴忓憳鍜學(xué)eb灞傜殑紼嬪簭鍛樹笉闇瑕佷簡(jiǎn)瑙ibernate錛岀洿鎺ュDAO榪涜璋冪敤銆?

姝ゆ椂闂灝辨潵浜?jiǎn)锛?xì)涓婇潰鐨勪唬鐮佽繍琛屾紜湁涓涓繀瑕佺殑鍓嶆彁錛岄偅灝辨槸鏂規(guī)硶璋冪敤鍙傛暟cat瀵硅薄蹇呴』鏄竴涓凡緇忚鎸佷箙鍖栬繃鐨凱O錛屼篃灝辨槸鏉ヨ錛屽畠搴旇棣栧厛浠庢暟鎹簱鏌ヨ鍑烘潵錛岀劧鍚庢墠鑳借繖鏍風(fēng)敤銆備絾鏄笟鍔″眰鐨勭▼搴忓憳鏄劇劧涓嶇煡閬撹繖縐嶅唴閮ㄧ殑鐜勫錛屽鏋滀粬鐨勪笟鍔℃槸鐜板湪澧炲姞涓涓猚at錛岀劧鍚庡啀澧炲姞瀹冪殑mate錛屼粬鏄劇劧浼?xì)杩欐牤偘冪敤锛宯ew涓涓猚at瀵硅薄鍑烘潵錛岀劧鍚庡氨addMate錛?

java浠g爜: 

 1 Cat cat = new Cat();
 2 cat.setXXX();
 3 daoimpl.addMate(cat,mate);



浣嗘槸璇鋒敞鎰忕湅錛岃繖涓猚at瀵硅薄鍙槸涓涓猇O錛屽畠娌℃湁琚寔涔呭寲榪囷紝瀹冭繕涓嶆槸PO錛屽畠娌℃湁璧勬牸璋冪敤addMate鏂規(guī)硶錛屽洜姝よ皟鐢╝ddMate鏂規(guī)硶涓嶄細(xì)鐪熸寰鏁版嵁搴撻噷闈㈠彂閫乽pdate鐨剆ql錛岃繖涓猚at瀵硅薄蹇呴』鍏堣save鍒版暟鎹簱錛屽湪鐪熸鎴愪負(fù)涓涓狿O涔嬪悗錛屾墠鍏峰addMate鐨勮祫鏍箋?

浣犲繀欏昏繖鏍鋒潵鎿嶄綔錛?

java浠g爜: 

 1 Cat cat = new Cat();
 2 cat.setXXX();
 3 daoimpl.addCat(cat);
 4 daoimpl.addMate(cat, mate);



鍏堟寔涔呭寲cat錛岀劧鍚庢墠鑳藉cat榪涜鍏朵粬鐨勬寔涔呭寲鎿嶄綔銆傚洜姝よ姹備笟鍔″眰鐨勭▼搴忓憳蹇呴』娓呮cat瀵硅薄澶勪簬浣曠鐘舵侊紝鍒板簳鏄涓縐嶏紝榪樻槸絎笁縐嶃傚鏋滄槸絎竴縐嶏紝灝辮鍏坰ave錛屽啀addMate錛涘鏋滄槸絎笁縐嶏紝灝辯洿鎺ddMate銆?

浣嗘槸鏈鑷村懡鐨勬槸錛屽鏋滄暣涓蔣浠跺垎灞傚緢澶氾紝涓氬姟灞傜殑紼嬪簭鍛樹粬鎷垮埌榪欎釜cat瀵硅薄涔熷彲鑳芥槸涓婂眰Web搴旂敤灞備紶閫掕繃鏉ョ殑cat錛屼粬鑷繁涔熶笉鐭ラ亾榪欎釜cat絀剁珶鏄疺O錛屾病鏈夎鎸佷箙鍖栬繃錛岃繕鏄凡緇忚鎸佷箙鍖栬繃錛岄偅涔堜粬鏍規(guī)湰灝辨病鏈夊姙娉曞啓紼嬪簭浜?jiǎn)銆?

鎵浠ヨ繖鏍風(fēng)殑DAOImpl鏄劇劧鏄湁闂鐨勶紝瀹冧細(xì)瀵逛笟鍔″眰鐨勭▼搴忓憳閫犳垚寰堝緙栫▼涓婄殑闄烽槺錛屼笟鍔″眰鐨勭▼搴忓憳蹇呴』娣卞埢鐨勪簡(jiǎn)瑙d粬璋冪敤鐨勬瘡涓狣AO瀵筆O瀵硅薄榪涜浜?jiǎn)浣暱U嶇姸鎬佺鐞嗭紝蹇呴』娣卞埢鐨勪簡(jiǎn)瑙d粬鐨凱O瀵硅薄鍦ㄤ換浣曟椂鍊欏浜庝粈涔堢‘鍒囩殑鐘舵侊紝鎵嶈兘淇濊瘉緙栫▼鐨勬紜э紝鏄劇劧榪欐槸鍋氫笉鍒扮殑錛屼絾鏄湁浜?SPAN style="COLOR: #ffa34f">saveOrUpdate
錛岃繖浜涢棶棰樺氨榪庡垉鑰岃В浜?jiǎn)銆?

鐜板湪浣犻渶瑕佷慨鏀筧ddMate鏂規(guī)硶錛?

java浠g爜: 

1 public void addMate(Cat cat, Mate mate) {
 2     Session session = ...;
 3     Transacton tx = ...;
 4     session.saveOrUpdate(cat);
 5     cat.addMate(mate);
 6     tx.commit();
 7     session.close();
 8 };



濡備笂錛屽鏋滀笟鍔″眰鐨勭▼搴忓憳浼犺繘鏉ョ殑鏄竴涓凡緇忔寔涔呭寲榪囩殑PO瀵硅薄錛岄偅涔圚ibernate浼?xì)鏇存柊cat瀵硅薄(鍋囪涓氬姟灞傜殑紼嬪簭鍛樺湪Session澶栭潰淇敼榪嘽at鐨勫睘鎬?錛屽鏋滀紶榪涙潵鐨勬槸涓涓柊new鍑烘潵鐨勫璞★紝閭d箞鍚戞暟鎹簱save榪欎釜PO瀵硅薄銆?

BTW: Hibernate姝ゆ椂絀剁珶閲囧彇鏇存柊cat瀵硅薄錛岃繕鏄痵ave cat瀵硅薄錛屽彇鍐充簬unsave-value鐨勮瀹氥?

榪欐牱錛屼笟鍔″眰鐨勭▼搴忓憳灝變笉蹇呭啀鎿嶅績(jī)PO鐨勭姸鎬侀棶棰樹簡(jiǎn)錛屽浜庝粬浠潵璇達(dá)紝涓嶇cat鏄痭ew鍑烘潵鐨勫璞★紝鍙槸涓涓猇O涔熷ソ錛涜繕鏄粠鏁版嵁搴撴煡璇㈠嚭鏉ョ殑鐨凱O瀵硅薄涔熷ソ錛屽叏閮ㄩ兘鏄洿鎺ddMate灝監(jiān)K浜?jiǎn)锛?xì)



killvin 2006-03-02 20:44 鍙戣〃璇勮
]]>
StrutsFileUpload http://www.tkk7.com/killvin/archive/2006/03/02/33295.htmlkillvinkillvinThu, 02 Mar 2006 12:43:00 GMThttp://www.tkk7.com/killvin/archive/2006/03/02/33295.html


StrutsFileUpload
File Upload - Simple Example
HTML
This isn't specific to Struts, but gives a simple example of the HTML required to upload a single file.

Two things are needed in the html page. Firstly, the form needs to specify an enctype of multipart/form-data and secondly an form control of type file.

JSP
The above HTML can be generated using the Struts tags in the following way

<html:form action="/uploadMyFile.do" enctype="multipart/form-data">

Select File: <html:file property="myFile">

<html:submit value="Upload File"/>

</html:form>

ActionForm
The ActionForm needs a property of type FormFile.

Regular ActionForms
import org.apache.struts.upload.FormFile;

public class MyActionForm extends ActionForm {

private FormFile myFile;

public void setMyFile(FormFile myFile) {
this.myFile = myfile;
}

public FormFile getMyFile() {
return myFile;
}
}

Dyna ActionForms
In the struts-config.xml

<form-bean name="myForm" type="org.apache.struts.action.DynaActionForm">
<form-property name="myFile" type="org.apache.struts.upload.FormFile"/>
</form-bean>

Whats Needed in the Action
Nothing special really, just retrieve the FormFile from the ActionForm, as you would any other property, and process it as you like. You can get the file name, size and file contents from the FormFile.

public ActionForward execute(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) throws Exception {

MyActionForm myForm = (MyActionForm)form;

// Process the FormFile
FormFile myFile = myForm.getMyFile();
String contentType = myFile.getContentType();
String fileName = myFile.getFileName();
int fileSize = myFile.getFileSize();
byte[] fileData = myFile.getFileData();
...
}

File Upload Configuration
The following parameters can be set in the <controller> element of the struts-config.xml to configure file upload:

bufferSize - The size (in bytes) of the input buffer used when processing file uploads. Default is 4096.

maxFileSize - The maximum size (in bytes) of a file to be accepted as a file upload. Can be expressed as a number followed by a "K", "M", or "G", which are interpreted to mean kilobytes, megabytes, or gigabytes, respectively. Default is 250M.

multipartClass - The fully qualified Java class name of the multipart request handler class to be used with this module. Defaults is org.apache.struts.upload.CommonsMultipartRequestHandler.

tempDir - Temporary working directory to use when processing file uploads.

Above taken from the Configuration section in the User Guide.

Plugging in an Alternative File Upload Mechanism
By default Struts uses Commons File Upload.

Alternative implementations can be plugged as long as they implement the org.apache.struts.upload.MultipartRequestHandler interface and Struts configured to use that implementation by specifying it in the multipartClass parameter in the <controller> element of the struts-config.xml

Fair Warning: The MultipartRequestHandler interface is almost certain to change in a Struts 1.3 or higher release.


killvin 2006-03-02 20:43 鍙戣〃璇勮
]]>
主站蜘蛛池模板: 亚洲熟妇无码AV不卡在线播放 | 永久免费视频网站在线观看| 亚洲桃色AV无码| h视频在线观看免费| 亚洲男女内射在线播放| 黄色三级三级三级免费看| 四虎国产精品免费久久影院| 在线视频亚洲一区| 亚洲免费视频一区二区三区| 一边摸一边桶一边脱免费视频 | 国外亚洲成AV人片在线观看| h片在线观看免费| 亚洲AV无码乱码在线观看裸奔| 免费A级毛片在线播放| 亚洲国产成人综合| 在线a毛片免费视频观看| 国产成人久久精品亚洲小说| 亚洲伊人久久综合中文成人网| a级大片免费观看| 亚洲小说图片视频| 国产色爽免费视频| 久久性生大片免费观看性| 亚洲成人激情在线| 成人五级毛片免费播放| 女人裸身j部免费视频无遮挡| 亚洲色偷偷综合亚洲AVYP| 99视频在线精品免费| 亚洲中文字幕无码爆乳app| 又粗又硬又黄又爽的免费视频| 成人免费乱码大片A毛片| 亚洲手机中文字幕| 亚洲AⅤ优女AV综合久久久| 国产在线观看免费视频软件 | 日韩免费电影网站| 亚洲乱码中文字幕在线| 久久亚洲2019中文字幕| 我们的2018在线观看免费高清| 九九综合VA免费看| 亚洲一本之道高清乱码| 久久久无码精品亚洲日韩软件| 美女内射毛片在线看免费人动物|