锘??xml version="1.0" encoding="utf-8" standalone="yes"?>久久精品国产亚洲AV麻豆网站 ,亚洲a一级免费视频,亚洲色无码专区一区http://www.tkk7.com/killvin/category/8033.htmlzh-cnWed, 28 Feb 2007 03:53:09 GMTWed, 28 Feb 2007 03:53:09 GMT60騫跺彂闂鍙婃帶鍒舵墜孌?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

絎?绔?騫跺彂闂鍙婃帶鍒舵墜孌?/h1>

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

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

[瀹炲湪涓嶅ソ鎰忔滳OPY鍒漢鐨勬垚鏋滐紝涓嶈繃榪欑瘒鏂囩珷鍑哄鐨勭簿褰╋紝灝嗗茍鍙戞搷浣滅殑鏉ラ緳鍘昏剦璇寸殑娓呮竻妤氭錛屼篃鏄垜姝h鎵劇殑錛屾瘮JAVAEYE涓婇潰鎵璋撶殑涓撳鍙毞鐫浠涔?鎮茶閿?銆?涔愯閿?鑰屼笉瑙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闇瑕佸垽鏂鎿嶄綔鐨勫璞$┒绔熸槸涓涓凡緇忔寔涔呭寲榪囩殑鎸佷箙瀵硅薄錛屾槸涓涓皻鏈鎸佷箙鍖栬繃鐨勫唴瀛樹復鏃跺璞°備緥濡傦細

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絀剁珶鏄竴涓復鏃跺璞★紝榪樻槸宸茬粡鍦ㄦ暟鎹簱涓湁鐨勬寔涔呭璞°傚鏋渃hild鏄竴涓柊鍒涘緩鐨勪復鏃跺璞?鏈緥涓氨鏄繖縐嶆儏鍐?錛岄偅涔圚ibernate搴旇鑷姩浜х敓session.save(child)榪欐牱鐨勬搷浣滐紝濡傛灉child鏄凡緇忓湪鏁版嵁搴撲腑鏈夌殑鎸佷箙瀵硅薄錛岄偅涔圚ibernate搴旇鑷姩浜х敓session.update(child)榪欐牱鐨勬搷浣溿?

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

渚嬪涓嬮潰鐨勬儏鍐碉細

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

BTW: parent瀵硅薄涓嶉渶瑕佹搷蹇冿紝鍥犱負紼嬪簭鏄懼紡鐨勫parent鏈塴oad鎿嶄綔鍜寀pdate鐨勬搷浣滐紝涓嶉渶瑕丠ibernate鑷繁鏉ュ垽鏂┒绔熸槸save榪樻槸update浜嗐傛垜浠娉ㄦ剰鐨勫彧鏄痗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
錛屼緥濡傦細

java浠g爜: 

 1 unsaved-null="0"



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

閭d箞浣犳案榪滅敤鐨勬槸unsaved-value="null" 錛屼笉鍙兘鐢ㄥ埌any/none/..浜嗐?/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鍏堟潵鐐規蹇碉細

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

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

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

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

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

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

鐜板湪姝e紡榪涘叆鏈瘽棰橈細

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

鍋囪浣犵殑PO涓嶉渶瑕佽法Session鐨勮瘽錛岄偅涔堝氨涓嶉渶瑕佺敤鍒幫紝渚嬪浣犳墦寮涓涓猄ession錛屽PO榪涜鎿嶄綔錛岀劧鍚庡叧闂紝涔嬪悗榪欎釜PO浣犱篃涓嶄細鍐嶇敤鍒頒簡錛岄偅涔堝氨涓嶉渶瑕佺敤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浼氳嚜鍔ㄧ洃嫻嬪埌foo瀵硅薄宸茬粡琚慨鏀硅繃錛屽洜姝ゅ氨鍚戞暟鎹簱鍙戦佷竴涓猽pdate鐨剆ql銆傚綋鐒跺鏋滀綘闈炶鍔犱笂sess.update(foo)涔熶笉浼氶敊錛屽彧涓嶈繃榪欐牱鍋氭病鏈変換浣曞繀瑕併?

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

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

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

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

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

渚嬪褰撲綘鍐欎竴涓狣AOImpl鐨勬椂鍊欙紝璁ヽat瀵硅薄澧炲姞涓涓猰ate錛屽涓嬪畾涔夛細
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閲岄潰鐨勶紝璁╀笟鍔″眰鐨勭▼搴忓憳鍜學eb灞傜殑紼嬪簭鍛樹笉闇瑕佷簡瑙ibernate錛岀洿鎺ュDAO榪涜璋冪敤銆?

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

java浠g爜: 

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



浣嗘槸璇鋒敞鎰忕湅錛岃繖涓猚at瀵硅薄鍙槸涓涓猇O錛屽畠娌℃湁琚寔涔呭寲榪囷紝瀹冭繕涓嶆槸PO錛屽畠娌℃湁璧勬牸璋冪敤addMate鏂規硶錛屽洜姝よ皟鐢╝ddMate鏂規硶涓嶄細鐪熸寰鏁版嵁搴撻噷闈㈠彂閫乽pdate鐨剆ql錛岃繖涓猚at瀵硅薄蹇呴』鍏堣save鍒版暟鎹簱錛屽湪鐪熸鎴愪負涓涓狿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錛屾病鏈夎鎸佷箙鍖栬繃錛岃繕鏄凡緇忚鎸佷箙鍖栬繃錛岄偅涔堜粬鏍規湰灝辨病鏈夊姙娉曞啓紼嬪簭浜嗐?

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

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

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浼氭洿鏂癱at瀵硅薄(鍋囪涓氬姟灞傜殑紼嬪簭鍛樺湪Session澶栭潰淇敼榪嘽at鐨勫睘鎬?錛屽鏋滀紶榪涙潵鐨勬槸涓涓柊new鍑烘潵鐨勫璞★紝閭d箞鍚戞暟鎹簱save榪欎釜PO瀵硅薄銆?

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

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



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 鍙戣〃璇勮
]]>
主站蜘蛛池模板: 亚洲一级特黄特黄的大片| 国产亚洲一卡2卡3卡4卡新区 | 免费人成在线观看网站| 一个人免费观看视频www| 亚洲国产婷婷香蕉久久久久久| 亚洲情a成黄在线观看动漫尤物| 亚洲国产人成在线观看| 精品国产污污免费网站入口在线| 无码人妻精品中文字幕免费东京热| 无码精品人妻一区二区三区免费看 | 亚洲av综合日韩| 国产免费av片在线播放| 久久久久亚洲精品天堂| 青青草97国产精品免费观看| 99国产精品永久免费视频| 99热亚洲色精品国产88| 国产成人高清精品免费鸭子| 亚洲国产成人手机在线电影bd| 4399好看日本在线电影免费| 国产成人亚洲综合网站不卡| 国产2021精品视频免费播放| 久久夜色精品国产亚洲AV动态图| 免费一级毛片在线播放视频免费观看永久| xvideos亚洲永久网址| 亚洲av无码无线在线观看| 国产精品成人免费一区二区| 亚洲精品日韩中文字幕久久久| 永久免费av无码网站yy| 日韩一卡2卡3卡4卡新区亚洲| 亚洲精品V天堂中文字幕| 久久久久久国产精品免费免费| AV激情亚洲男人的天堂国语| 亚洲自偷自偷图片| 皇色在线视频免费网站| 曰批免费视频播放免费| 久久亚洲AV成人无码国产 | 99精品免费视频| 亚洲色偷拍另类无码专区| 一个人看的www免费在线视频| 免费a级黄色毛片| 特级av毛片免费观看|