锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲国产精品网站久久,香蕉视频亚洲一级,亚洲成a人片在线观看无码http://m.tkk7.com/henry1451/articles/202718.htmlhenry1451henry1451Sun, 25 May 2008 06:11:00 GMThttp://m.tkk7.com/henry1451/articles/202718.htmlhttp://m.tkk7.com/henry1451/comments/202718.htmlhttp://m.tkk7.com/henry1451/articles/202718.html#Feedback0http://m.tkk7.com/henry1451/comments/commentRss/202718.htmlhttp://m.tkk7.com/henry1451/services/trackbacks/202718.html         Cache灝辨槸緙撳瓨錛屽畠寰寰鏄彁楂樼郴緇熸ц兘鐨勬渶閲嶈鎵嬫錛屽鏁版嵁璧峰埌涓涓搫姘存睜鍜岀紦鍐茬殑浣滅敤銆侰ache瀵逛簬澶ч噺渚濊禆鏁版嵁璇誨彇鎿嶄綔鐨勭郴緇熻岃█灝ゅ叾閲嶈銆傚湪澶у茍鍙戦噺鐨勬儏鍐典笅錛屽鏋滄瘡嬈$▼搴忛兘闇瑕佸悜鏁版嵁搴撶洿鎺ュ仛鏌ヨ鎿嶄綔錛屽畠浠墍甯︽潵鐨勬ц兘寮閿鏄樉鑰屾槗瑙佺殑錛岄綣佺殑緗戠粶鑸嗭紝鏁版嵁搴撶鐩樼殑璇誨啓鎿嶄綔閮戒細澶уぇ闄嶄綆緋葷粺鐨勬ц兘銆傛鏃跺鏋滆兘璁╂暟鎹簱鍦ㄦ湰鍦板唴瀛樹腑淇濈暀涓涓暅鍍忥紝涓嬫璁塊棶鐨勬椂鍊欏彧闇瑕佷粠鍐呭瓨涓洿鎺ヨ幏鍙栵紝閭d箞鏄劇劧鍙互甯︽潵涓嶅皬鐨勬ц兘鎻愬崌銆傚紩鍏ache鏈哄埗鐨勯毦鐐規槸濡備綍淇濊瘉鍐呭瓨涓暟鎹殑鏈夋晥鎬э紝鍚﹀垯鑴忔暟鎹殑鍑虹幇灝嗕細緇欑郴緇熷甫鏉ラ毦浠ラ鐭ョ殑涓ラ噸鍚庢灉銆傝櫧鐒朵竴涓璁″緱寰堝ソ鐨勫簲鐢ㄧ▼搴忎笉鐢–ache涔熷彲浠ヨ〃鐜板嚭璁╀漢鎺ュ彈鐨勬ц兘錛屼絾姣棤鐤戦棶錛屼竴浜涘璇誨彇鎿嶄綔瑕佹眰姣旇緝楂樼殑搴旂敤紼嬪簭鍙互閫氳繃Cache鑾峰緱鏇撮珮鐨勬ц兘銆傚浜庡簲鐢ㄧ▼搴忥紝Cache閫氳繃鍐呭瓨鎴栫鐩樹繚瀛樹簡鏁版嵁搴撲腑鐨勫綋鍓嶆湁鍏蟲暟鎹姸鎬侊紝瀹冩槸涓涓瓨鍌ㄥ湪鏈湴鐨勬暟鎹浠姐侰ache浣嶄簬鏁版嵁搴撳拰搴旂敤紼嬪簭涔嬮棿錛屼粠鏁版嵁搴撴洿鏂版暟鎹紝騫剁粰紼嬪簭鎻愪緵鏁版嵁銆?br /> Hibernate瀹炵幇浜嗚壇濂界殑Cache鏈哄埗錛屽彲浠ュ熷姪Hibernate鍐呴儴鐨凜ache榪呴熸彁楂樼郴緇熺殑鏁版嵁璇誨彇鎬ц兘銆侶ibernate涓殑Cache鍙垎涓轟袱灞傦細涓綰ache鍜屼簩綰ache銆?br /> 涓綰ache:
Session瀹炵幇浜嗙涓綰ache錛屽畠灞炰簬浜嬪姟綰ф暟鎹紦鍐層備竴鏃︿簨鍔$粨鏉燂紝榪欎釜Cache涔熼殢涔嬪け鏁堛備竴涓猄ession鐨勭敓鍛藉懆鏈熷搴斾竴涓暟鎹簱浜嬪姟鎴栦竴涓▼搴忎簨鍔°?br /> Session-cache淇濊瘉浜嗕竴涓猄ession涓袱嬈¤姹傚悓涓涓璞℃椂錛屽彇寰楃殑瀵硅薄鏄悓涓涓狫AVA瀹炰緥錛屾湁鏃跺畠鍙互閬垮厤涓嶅繀瑕佺殑鏁版嵁鍐茬獊銆傚彟澶栵紝瀹冭繕鑳戒負鍙︿竴浜涢噸瑕佺殑鎬ц兘鎻愪緵淇濊瘉錛?br /> 1錛氬湪瀵逛竴涓璞¤繘琛岃嚜鎴戝驚鐜紩鐢ㄦ椂錛?涓嶈嚦浜庝駭鐢熷爢鏍堟孩鍑恒?br /> 2錛氬綋鏁版嵁搴撲簨鍔$粨鏉熸椂錛屽浜庡悓涓涓暟鎹簱琛岋紝涓嶄細浜х敓鏁版嵁鍐茬獊錛屽洜涓哄浜庢暟鎹簱涓殑涓琛岋紝鏈澶氬彧鏈変竴涓璞℃潵琛ㄧず瀹冦?br /> 3錛氫竴涓簨鍔′腑鍙兘浼氭湁寰堝涓鐞嗗崟鍏冿紝鍦ㄦ瘡涓涓鐞嗗崟鍏冧腑鍋氱殑鎿嶄綔閮戒細绔嬪嵆琚彟澶栫殑澶勭悊鍗曞厓寰楃煡銆?br /> 鎴戜滑涓嶇敤鍒繪剰鍘繪墦寮Session-cache錛屽畠鎬繪槸琚墦寮騫朵笖涓嶈兘琚叧闂傚綋浣跨敤save(),update()鎴杝aveOrUpdate()鏉ヤ繚瀛樻暟鎹洿鏀癸紝鎴栭氳繃load(),find(),list()絳夋柟娉曟潵寰楀埌瀵硅薄鏃訛紝瀵硅薄灝變細琚姞鍏ュ埌Session-cache銆?br /> 濡傛灉瑕佸悓姝ュ緢澶氭暟鎹璞★紝灝遍渶瑕佹湁鏁堝湴綆$悊Cache,鍙互鐢⊿ession鐨別vict()鏂規硶浠庝竴綰ache涓Щ闄ゅ璞°傚涓嬶細
Session session = HibernateUtil.currentSession();
Transaction tx 
= session.beginTransaction();
for(int i = 0 ; i <100000 ; i++)
{
    Student stu 
= new Student();
    
    session.save(stu);
}

tx.commit();
session.close();
鍦ㄤ繚瀛?0000涓垨鏇村瀵硅薄鏃訛紝紼嬪簭鍙兘浼氭姏鍑篛utOfMemoryException寮傚父錛屽洜涓篐ibernate鍦ㄤ竴綰ache緙撳瓨浜嗘柊鍔犲叆鐨勬墍鏈夊璞°傚唴瀛樻孩鍑恒傝瑙e喅榪欏叏闂灝遍渶瑕佹妸JDBC鎵瑰鐞嗘暟閲忚緗負涓涓悎鐞嗙殑鏁板鹼紙涓鑸槸10锝?0錛夈傚湪Hibernate鐨勯厤緗枃浠朵腑鍙互鍔犲叆浠ヤ笅灞炴?br />
<property name="hibernate.jdbc.batch_size"> 20 </property>

鐒跺悗鎴戜滑鍦ㄧ▼搴忎腑涓瀹氭椂鍒誨氨鎻愪氦騫舵洿鏂癝ession鐨凜ache:
Session session = HibernateUtil.currentSession();
Transaction tx 
= session.beginTransaction();
for(int i = 0 ; i <100000 ; i++)
{
    Student stu 
= new Student();
    
    session.save(stu);
    
if(i%20 == 0)    //姣忎繚瀛樺畬20涓璞″悗錛岃繘琛屽涓嬫搷浣?/span>
    {
        session.flush();
//榪欎釜浼氭彁浜ゆ洿鏂?/span>
        session.clear();//娓呴櫎Cache,閲婃斁鍐呭瓨
    }

}

tx.commit();
session.close();

浜岀駭Cache
浜岀駭Cache鏄疭essionFactory鑼冨洿鍐呯殑緙撳瓨錛屾墍鏈夌殑Session鍏變韓鍚屼竴涓簩綰ache銆傚湪浜岀駭Cache涓繚瀛樻寔涔呮у疄渚嬬殑鏁h褰㈠紡鐨勬暟鎹備簩綰ache鐨勫唴閮ㄥ浣曞疄鐜板茍涓嶉噸瑕侊紝閲嶈鐨勬槸閲囩敤鍝姝g‘鐨勭紦瀛樼瓥鐣ワ紝浠ュ強閲囩敤鍝釜Cache鎻愪緵鍣ㄣ傛寔涔呭寲涓嶅悓鐨勬暟鎹渶瑕佷笉鍚岀殑Cache絳栫暐錛屾瘮濡備竴浜涘洜绱犲皢褰卞搷鍒癈ache絳栫暐鐨勯夋嫨錛氭暟鎹殑璇?鍐欐瘮渚嬶紝鏁版嵁琛ㄦ槸鍚﹁兘琚叾浠栫殑搴旂敤紼嬪簭鎵闂瓑銆傚浜庝竴浜涜/鍐欐瘮渚嬮珮鐨勬暟鎹彲浠ユ墦寮瀹冪殑緙撳瓨錛屽厑璁歌繖浜涙暟鎹繘鍏ヤ簩綰х紦瀛樺鍣ㄦ湁鍒╀簬緋葷粺鎬ц兘鐨勪紭鍖?鑰屽浜庤兘琚叾瀹冨簲鐢ㄧ▼搴忚闂殑鏁版嵁瀵硅薄錛屾渶濂藉皢姝ゅ璞$殑浜岀駭Cache閫夐」鍏抽棴銆?br /> 璁劇疆Hibernate鐨勪簩綰ache闇瑕佸垎涓ゆ榪涜錛氶鍏堢‘璁や嬌鐢ㄤ粈涔堟暟鎹茍鍙戠瓥鐣ワ紝鐒跺悗閰嶇疆緙撳瓨榪囨湡鏃墮棿騫惰緗瓹ache鎻愪緵鍣ㄣ?br /> 鏈?縐嶅唴緗殑Hibernate鏁版嵁騫跺彂鍐茬獊絳栫暐錛屼唬琛ㄦ暟鎹簱闅旂綰у埆錛屽涓嬶細
1錛?span style="color: #0000ff">浜嬪姟錛圱ransaction錛?/span>浠呭湪鍙楃鐞嗙殑鐜涓彲鐢ㄣ傚畠淇濊瘉鍙噸璇葷殑浜嬪姟闅旂綰у埆錛屽彲浠ュ璇?鍐欐瘮渚嬮珮錛屽緢灝戞洿鏂扮殑鏁版嵁閲囩敤璇ョ瓥鐣ャ?br /> 2錛?span style="color: #0000ff">璇誨啓錛坮ead-write錛?/span>浣跨敤鏃墮棿鎴蟲満鍒剁淮鎶よ鍐欐彁浜や簨鍔¢殧紱葷駭鍒傚彲浠ュ璇?鍐欐瘮渚嬮珮錛屽緢灝戞洿鏂扮殑鏁版嵁閲囩敤璇ョ瓥鐣ャ?br /> 3錛?span style="color: #0000ff">闈炰弗鏍艱鍐欙紙notstrict-read-write錛?/span>涓嶄繚璇丆ache鍜屾暟鎹簱涔嬮棿鐨勬暟鎹簱鐨勪竴鑷存с備嬌鐢ㄦ絳栫暐鏃訛紝搴旇璁劇疆瓚沖鐨勭紦瀛樿繃鏈熸椂闂達紝鍚﹀垯鍙兘浠庣紦瀛樹腑璇誨嚭鑴忔暟鎹傚綋涓浜涙暟鎹瀬灝戞敼鍙橈紝騫朵笖褰撹繖浜涙暟鎹拰鏁版嵁搴撴湁涓閮ㄤ喚涓嶉噺褰卞搷涓嶅ぇ鏃訛紝鍙互浣跨敤姝ょ瓥鐣ャ?br /> 4錛?span style="color: #0000ff">鍙錛坮ead-only錛?/span>褰撶‘淇濇暟鎹案涓嶆敼鍙樻椂錛屽彲浠ヤ嬌鐢ㄦ絳栫暐銆?/p>

鎴戜滑紜畾浜咰ache絳栫暐鍚庯紝灝辮鎸戦変竴涓珮鏁堢殑Cache鎻愪緵鍣紝瀹冨皢浣滀負鎻掍歡琚獺ibernate璋冪敤銆侶ibernate鍏佽浣跨敤涓嬭堪鍑犵緙撳瓨鎻掍歡錛?br /> EhCache錛氬彲浠ュ湪JVM涓綔涓轟竴涓畝鍗曡繘紼嬭寖鍥村唴鐨勭紦瀛橈紝瀹冨彲浠ユ妸緙撳瓨鐨勬暟鎹斁鍏ュ唴瀛樻垨紓佺洏錛屽茍鏀寔Hibernate涓彲閫夌敤鐨勬煡璇㈢紦瀛樸?br /> OpenSymphony OSCache錛氬拰EhCache鐩鎬技錛屽茍涓旀彁渚涗簡涓板瘜鐨勭紦瀛樿繃鏈熺瓥鐣ャ?br /> SwarmCache錛氬彲浣滀負闆嗙兢鑼冨洿鐨勭紦瀛橈紝浣嗕笉鏀寔鏌ヨ緙撳瓨銆?br /> JBossCache錛氬彲浣滀負闆嗙兢鑼冨洿鐨勭紦鍐詫紝浣嗕笉鏀寔鏌ヨ緙撳瓨銆?/p>

鍦℉ibernate涓嬌鐢‥hCache
EhCache鏄竴涓函JAVA紼嬪簭錛屽彲浠ュ湪Hibernate涓綔涓轟竴涓彃浠跺紩鍏ャ傚湪Hibernate涓嬌鐢‥hCache闇瑕佸湪Hibernate鐨勯厤緗枃浠朵腑璁劇疆濡備笅錛?/p>

<propery name="hibernate.cache.provider_class">
    org.hibernate.cache.EhCacheProvider
</property>
EhCacheProvider綾繪槸浣嶄簬Hibernate3.jar鍖呬腑鑰屼笉鏄痚hcache-1.1.jar鍖呬腑銆侲hCache鏈夎嚜宸辯殑閰嶇疆鏂囨。錛屽悕涓篶hcache.xml銆侶ibernate3.x涓殑etc鐩綍涓嬫湁ehcache.xml鐨勭ず渚嬫枃浠訛紝鍙』瑕佸皢 瀹僀OPY鍒版垜浠殑搴旂敤紼嬪簭src鐩綍涓嬶紙緙栬瘧鏃朵細鎶奺hcache.xmlCOPY鍒癢EB-INF/classes鐩綍涓嬶級銆傚鍏朵腑鐨勭浉鍏沖艱繘琛屾洿鏀逛互鍜岃嚜宸辯殑紼嬪簭鐩擱傚簲銆傝繘琛岄厤緗悗錛屽湪ehcache.xml鏂囦歡涓殑浠g爜濡備笅錛?
<ehcache>
    
<diskStore path="c:\\cache"/>    //璁劇疆cache.data鏂囦歡瀛樻斁浣嶇疆

    
<defaultCache
                
maxElementsInMemory="10000" //緙撳瓨涓厑璁稿垱寤虹殑鏈澶у璞℃暟
                eternal
="false"    //緙撳瓨涓璞℃槸鍚︿負姘鎬箙鐨?br />                 timeToIdleSeconds="120"//緙撳瓨鏁版嵁閽濆寲鏃墮棿(鍗沖璞″湪瀹冭繃鏈熷墠鐨勭┖闂叉椂闂?
                timeToLiveSeconds
="120"//緙撳瓨鏁版嵁鐢熷瓨鏃墮棿(鍗沖璞″湪瀹冭繃鏈熷墠鐨勭敓瀛樻椂闂?
                overflowToDisk
="true"
    
/>
    
    
<cache name="Student"    //鐢ㄦ埛鑷畾涔夌殑Cache閰嶇疆
                 maxElementsInMemory
="10000"
                 eternal
="false"
                 timeToIdleSeconds
="300"
                 timeToLiveSeconds
="600"
                 overflowToDisk
="true"
                 
/>
</ehcache>
姝ゅ鎴戜滑榪橀渶瑕佸湪鎸佷箙鍖栫被鐨勬槧灝勬枃浠朵腑榪涜閰嶇疆銆備緥濡傦紝Group(鐝駭)鍜孲tudent(瀛︾敓)鏄竴瀵瑰鐨勫叧緋伙紝瀹冧滑瀵瑰簲鐨勬暟鎹〃鍒嗗埆鏄痶_group鍜宼_student銆傜幇鍦ㄨ鎶奡tudent綾葷殑鏁版嵁榪涜浜岀駭緙撳瓨錛岃繖闇瑕佸湪浜屼釜鏄犲皠鏂囦歡涓兘瀵逛簩綰х紦瀛樿繘琛岄厤緗?br /> 鍦℅roup.hbm.xml涓涓?br /> 鍦ㄥ叾<set></set>涓坊鍔?
<cache usage="read-write"/><!--闆嗗悎涓殑鏁版嵁琚紦瀛?/span>-->
涓婅堪鏂囦歡铏界劧鍦?lt;set>鏍囪涓緗簡<cache usage="read-write"/>錛?span style="color: #0000ff">浣咹ibernate鍙槸鎶奊roup鐩稿叧鐨凷tudent鐨勪富閿甀D鍔犲叆鍒扮紦瀛樹腑錛屽鏋滃笇鏈涙妸鏁翠釜Student鐨勬暎瑁呭睘鎬ч兘鍔犲叆鍒頒簩綰х紦瀛樹腑錛岃繕闇瑕佸湪Student.hbm.xml鏂囦歡鐨?lt;class>鏍囪涓坊鍔?lt;cache>瀛愭爣璁?/span>銆傚涓嬶細
<class name="Student" table="t_student">
    
<cache usage="read-write" /><!--cache鏍囪闇璺熷湪class鏍囪鍚?/span>-->
</class>


henry1451 2008-05-25 14:11 鍙戣〃璇勮
]]>
Hibernate澶氳〃鍏寵仈 http://m.tkk7.com/henry1451/articles/201294.htmlhenry1451henry1451Sun, 18 May 2008 12:47:00 GMThttp://m.tkk7.com/henry1451/articles/201294.htmlhttp://m.tkk7.com/henry1451/comments/201294.htmlhttp://m.tkk7.com/henry1451/articles/201294.html#Feedback0http://m.tkk7.com/henry1451/comments/commentRss/201294.htmlhttp://m.tkk7.com/henry1451/services/trackbacks/201294.html 涓銆佸瀵逛竴榪涜鍏寵仈(澶氫釜瀛︾敓瀵瑰簲鍚屼竴闂村鑸?---瀛︾敓鏄富浣擄紝瀹胯垗鏄檮浣擄紝鍏寵仈鍏崇郴<many-to-one>鍦ㄤ富浣撳鐢熶腑璁劇疆錛屽湪瀛︾敓綾諱腑璁劇疆瀹胯垗綾伙紝鐢變簬瀹胯垗綾誨彧鏈変竴涓彲浠ョ洿鎺ョ敤綾繪潵璁劇疆,鍦ㄦ槧灝勫鐢熺被(User)涓寘鍚鑸嶈繖涓被(Room),鍦ㄦ槧灝勯厤緗枃浠?User.hbm.xml)涓畾涔?br />
<many-to-one name="room" column="room_id" cascade="save-update" class="com.wyq.hibernate2.Room"></many-to-one>

鍝釜鏄富浣撶被灝卞湪鍝釜閰嶇疆鏂囦歡瀹氫箟鍏寵仈鍏崇郴錛?br />
cascade灞炴э細琛ㄧず鍏寵仈瀵硅薄鐨勬寔涔呭寲錛岃灞炴т篃瑕佽緗湪涓諱綋涓紝浣滅敤灝辨槸褰撲富鎺ф柟鎵ц鎿嶄綔鏃訛紝鍏寵仈瀵硅薄(琚姩鏂?鏄惁鍚屾鎵ц鍚屼竴鎿嶄綔錛?br /> cascade鐨勫鹼細all:琛ㄧず鎵鏈夋儏鍐典笅閮借繘琛岀駭鑱旀搷浣滐紟
                        none:鎵鏈夋儏鍐典笅閮戒笉榪涜綰ц仈鎿嶄綔
                        save-update:鍦ㄦ墽琛宻ave-update鏃惰繘琛岀駭鑱旀搷浣滐紟
                        delete:鍦ㄦ墽琛宒elete鏃惰繘琛岀駭鑱旀搷浣滐紟

娉ㄦ剰錛氫嬌鐢╟ascade鑷嫊鎸佷箙鍖栨檪錛屾渻鍏堟鏌ヨ闂滆伅鐗╀歡鐨刬d灞э紝鏈鎸佷箙鍖栫殑鐗╀歡涔媔d灞ф槸鐢眜nsaved-value姹哄畾錛岄爯璦槸null錛屽鏋滄偍浣跨敤long閫欐ǎ鐨勫師鐢熷瀷鎱嬶紙primitive type錛夋檪錛屽墖蹇呴爤鑷鎸囧畾闋愯ō鍊鹼紟

渚嬪錛?lt;id name="id" column="ROOM_ID" unsaved-value="0">
            <generator class="increment"/>
        </id>

濡傛灉鎮ㄤ笉鎯抽澶栬ō瀹歶nsaved-value璩囪▕錛屽墖鍙互灝噇ong鏀圭偤Long錛岄欏彲浠ョ鍚堥爯璦殑unsaved-value鐐簄ull鐨勮ō瀹?nbsp;錛?br />
浜屻佷竴瀵瑰榪涜鍏寵仈(涓闂村鑸嶅搴斿涓鐢?---瀹胯垗鏄富浣擄紝瀛︾敓鏄檮浣擄紝鍏寵仈鍏崇郴<one-to-many>鍦ㄤ富浣撳鑸嶄腑璁劇疆,鐢變簬瑕佸湪瀹胯垗綾諱腑璁劇疆瀛︾敓綾伙紝涓涓鑸嶅寘鍚涓鐢燂紝鎵浠ュ湪瀹胯垗綾諱腑瑕佺敤Set綾繪潵榪涜璁劇疆錛岀敤set綾?private Set users = new HashSet();)鏉ュ瓨鍌ㄥ涓鐢熺被錛屽湪鏄犲皠瀹胯垗綾?Room)涓鍖呭惈<set>榪欎釜鑺傜偣錛岀敤鏉ヤ笌user鐩稿叧鑱?br />
渚嬪錛?lt;set name="users" table="USER">
            <key column="ROOM_ID"/>
            <one-to-many class="onlyfun.caterpillar.User"/>
        </set>

name:琛ㄧず灞炴э紝table:琛ㄧず鍏寵仈鐨勮〃鍚嶏紝key:琛ㄧず閫氳繃浠涔堝瓧孌佃繘琛屽叧鑱旓紝<one-to-many>:琛ㄧず鍏寵仈綾匯傝繖閲屼篃鍙互浣跨敤cascade灞炴с?br />
涓夈佸湪琛ㄥ叧鑱旂殑璁捐涓紝涓嶈鏄竴瀵瑰榪樻槸澶氬涓錛岄兘瑕佸皢鍏寵仈瀛楁璁劇疆鍦ㄥ鐨勯偅涓鏂廣?br /> 渚嬪錛歶ser琛ㄦ牸鍜宺oom琛ㄦ牸錛岃灝嗗叧鑱斿瓧孌祌oom_id璁劇疆鍦╱ser琛ㄦ牸涓?br />
鍥涖佷竴瀵逛竴榪涜鍏寵仈(涓涓漢鍙湁涓涓埧闂達紝涓涓埧闂翠篃鍙湁涓涓漢)銆?br /> 鍙互閫氳繃錛掍腑鏂瑰紡榪涜鍏寵仈錛?br />
(1)銆侀氳繃澶栭敭榪涜鍏寵仈錛氬湪澶氬涓鐨勪緥瀛愪腑灝辨槸閫氳繃澶栭敭榪涜鍏寵仈鐨?
鍦╱ser-room鐨勮緗腑(user.hbm.xml):
<many-to-one name="room"
                     column="ROOM_ID"
                     class="onlyfun.caterpillar.Room"
                     cascade="all"
                     unique="true"/>

鍏朵腑unique琛ㄧず闄愬埗涓鍊婾ser鏈変竴鐛ㄦ湁鐨?Room錛岃繖鍙槸鍗曞悜鐨勶紝璇存槑涓涓猽ser鍙湁涓涓猺oom.
鍦╮oom-user鐨勮緗腑(room.hbm.xml):
<one-to-one name="user"
                    class="onlyfun.caterpillar.User"
                    property-ref="room"/>
榪欐牱灝卞畬鎴愪簡鍙屽悜鐨勪竴瀵逛竴鍏寵仈錛宲roperty-ref鍛婅瘔hibernate,鏌ヨ鍑簎ser騫跺皢鍏跺弬鑰冭嚦room銆?br /> (2)銆侀氳繃涓婚敭榪涜鍏寵仈錛氶檺鍒跺叐鍊嬭硣鏂欒〃鐨勪富閸典嬌鐢ㄧ浉鍚岀殑鍊鹼紝濡傛涓鍊婾ser鑸嘡oom灝辨槸涓灝嶄竴闂滀總
user.hbm.xml:
<one-to-one name="room"
                    class="onlyfun.caterpillar.Room"
                    cascade="all"/>
room.hbm.xml:
<one-to-one name="user"
                    class="onlyfun.caterpillar.User"
                    constrained="true"/>

浣跨敤constrained="true"鍛婅ùHibernate鍙冭冭嚦User鐨勪富閸?br />
浜斻佸弻鍚戝叧鑱旓紝灝辨槸灝嗕竴鍜屼簩緇撳悎璧鋒潵錛?font color="#000000">濡傛灉灝囬棞鑱殑綞浜ょ鄲User鐨勮┍鏈冩瘮杓冨鏄擄紝鍥犵偤姣忓婾ser閮藉皪鎳夎嚦涓鍊婻oom錛屽湪鍎插瓨鏅備甫鐢ㄥ儚Room涓妯e繀闋堝皪Set涓殑姣忓嬬墿浠朵綔妾㈡煡錛岀偤浜嗗皣闂滆伅鐨勭董璀蜂氦緄ser錛屾垜鍊戝彲浠ュ湪Room.hbm.xml涓殑<set>淇敼錛屽姞涓奿nverse="true"錛岃〃紺哄皣闂滆伅鐨勭董璀楓屽弽閬庝締銆嶄氦緄ser浣?/span>

 渚嬪錛?lt;set name="users" table="users" iinverse="true" cascade="all">
              <key  column="room_id"/>
              <one-to-many class="onlyfun.caterpillar.User"/>

鍦ㄨō绔嬮洐鍚戦棞鑱檪錛岄棞鑱敱澶氬皪涓涓屽銆嶇殑鍝竴鏂圭董璀鳳紝鏈冩瘮鐢便屼竴銆嶇殑鍝竴鏂圭董璀蜂締鐨勬柟渚匡紝鍦℉ibernate鍙互钘夌敱inverse渚嗚ō瀹氾紝涓嶈ō瀹歩nverse鍩烘湰涓婁篃鍙互閬嬭錛屼絾鏄晥鑳芥渻杓冨樊
 

henry1451 2008-05-18 20:47 鍙戣〃璇勮
]]>
Hibernate浣跨敤criteria榪涜鏌ヨhttp://m.tkk7.com/henry1451/articles/201293.htmlhenry1451henry1451Sun, 18 May 2008 12:41:00 GMThttp://m.tkk7.com/henry1451/articles/201293.htmlhttp://m.tkk7.com/henry1451/comments/201293.htmlhttp://m.tkk7.com/henry1451/articles/201293.html#Feedback0http://m.tkk7.com/henry1451/comments/commentRss/201293.htmlhttp://m.tkk7.com/henry1451/services/trackbacks/201293.html     1銆佽鍙栭厤緗枃浠惰幏寰楄繛鎺?br />    璇誨彇hibernate.cfg.xml閰嶇疆鏂囦歡錛宧ibernate.cfg.xml鏂囦歡鏀懼湪Classpath涓嬶紝浣跨敤涓嬮潰鐨勬柟寮忚鍏ヨ鏂囦歡
      //Configuration 璐熻矗綆$悊hibernate閰嶇疆淇℃伅
      Configuration config=new Configuration().configure();
      //鏍規嵁config寤虹珛SessionFactory
      //SessionFactory鐢ㄤ簬寤虹珛Session
      SessionFactory sessionFactory=config.buildSessionFactory();
      //寮鍚痵ession,鐩稿綋浜巎dbc鐨凜onnection
      session = sessionFactory.openSession();

2銆丆riteria 鍩烘湰璧勬枡鏌ヨ
(1)鏍囧噯鏌ヨ:
      //鍒涘緩鏌ヨ鏍囧噯
      Criteria criteria=session.creteCriteria(User.class);
      //鏌ヨ鏉′歡
      criteria.add(Expression.eq("name","caterpillar"));
************************************************************************************
Expression.eq(String s1,String s2)---------->鐩哥瓑s1=s2
Expression.allEq(Map map)    --------------->澶氫釜灞炴?鍊煎搴斿叧緋伙紝澶氫釜Expression.eq鍙犲姞
Expression.gt(String s1,String s2)----------->澶т簬s1>s2
Expression.ge(String s1,String s2)----------->澶т簬絳変簬s1>=s2
Expression.lt(String s1,String s2)------------>灝忎簬s1<s2
Expression.le(String s1,String s2)------------>灝忎簬絳変簬s1<=s2
Expression.between(String s1,int s2,int s3)--->s2<s1<s3
Expression.like(String s1,String s2)------------>s1 like s2
姣旇緝2涓睘鎬?br /> Expression.eqProperty(String s1,String s2)--->s1=s2
Expression.gtProperty(String s1,String s2)---->s1>s2
Expression.geProperty(String s1,String s2)---->s1>=s2
Expression.ltProperty(String s1,String s2)----->s1<s2
Expression.leProperty(String s1,String s2)----->s1<=s2
Expression.and()----->Expression.and(Expression.eq("String s1,String s2"),Expression.eq(String s3,String s4))
Expression.or()
************************************************************************************
(2)楂樼駭鏌ヨ
涓銆佸彲浠ヤ嬌鐢–riteria榪涜鏌ヨ錛屽茍鐢╫rder瀵圭粨鏋滆繘琛屾帓搴忋?br /> //璁劇疆浠庣鍑犳潯寮濮嬪彇鐨勮褰?br /> criteria.setFirstResult(100);
//鏈澶氬彇鐨勫嚑鏉¤褰?br /> criteria.setMaxResults(20);
//瀵圭粨鏋滆繘琛屾帓搴?br /> criteria.addOrder(Order.asc(String s1));
criteria.addOrder(Order.desc(String s2));

浜屻佸彲浠ュ鏌ヨ緇撴灉榪涜緇熻鎿嶄綔錛屼嬌鐢≒rojections鐨剅owCount(),count(),max(),min(),countDistinct()絳夋柟娉曪細
渚嬪錛歝riteria.setProjection(Projections.max("age"));

涓夈佽繕鍙互鐢≒rojections鐨刧roupProperty()鏉ュ緇撴灉榪涜鍒嗙粍
渚嬪錛歝riteria.setProjection(Projections.groupProperty("age"));

(***)鍥涖佺粨鍚堢粺璁′笌鍒嗙粍鐨勫姛鑳斤紝鍙互鐢≒rojectionList
渚嬪錛歅rojectionList projectionList =Projections.projectionList();
            projectionList.add(Projections.groupProperty("age"));
            projectionList.add(Projections.rowCount());
            criteria.setProjection(projectionList);
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      //鏌ヨ鎵鏈夎褰?br />       List users=criteria.list();
      Iterator iterator=users.iterator();
      while(iterator.hasNext()){
         User user=(User)iterator.next();
         System.out.println(user.getId()+"\t"+user.getName()+"/"+user.getAge());
}
3銆乧riteria鐨勫銆佸垹銆佹敼錛堣繕涓嶅畬鍠勶級
鍦ㄧ敤鍒板銆佸垹銆佹敼鏃訛紝蹇呴』鍏堝0鏄庝簨鍔?br /> 澧炲姞錛?br />   Transaction tx = session.beginTransaction();//Transaction琛ㄧず涓緇勪細璇濇搷浣?br />   session.save(user);//灝嗕簨鐗╂槧灝勫埌鏁版嵁搴撹繘琛屽瓨鍌?br />   tx.commit();
  session.close();
鍒犻櫎錛?br />   Session session=this.getSession();
  User user=(User)session.get(User.class, new Integer(1));
  Transaction tx = session.beginTransaction();//Transaction琛ㄧず涓緇勪細璇濇搷浣?br />   session.delete(user);//灝嗕簨鐗╂槧灝勫埌鏁版嵁搴撹繘琛屽瓨鍌?br />   tx.commit();
  session.close();

淇敼錛?br />   Session session=this.getSession();
  User user =(User)session.get(User.class,new Integer(2));//鍒涘緩鎸佷箙鍖栫殑浜嬬墿
  user.setName("wyqqqqqqqqqq");
  user.setAge(new Integer(30));
  Transaction tx = session.beginTransaction();//Transaction琛ㄧず涓緇勪細璇濇搷浣?br />
  session.update(user);//灝嗕簨鐗╂槧灝勫埌鏁版嵁搴撹繘琛屽瓨鍌?br />   tx.commit();
  session.close();


henry1451 2008-05-18 20:41 鍙戣〃璇勮
]]>
Hibernate涓璼ession鐨勭鐞?/title><link>http://m.tkk7.com/henry1451/articles/201292.html</link><dc:creator>henry1451</dc:creator><author>henry1451</author><pubDate>Sun, 18 May 2008 12:36:00 GMT</pubDate><guid>http://m.tkk7.com/henry1451/articles/201292.html</guid><wfw:comment>http://m.tkk7.com/henry1451/comments/201292.html</wfw:comment><comments>http://m.tkk7.com/henry1451/articles/201292.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/henry1451/comments/commentRss/201292.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/henry1451/services/trackbacks/201292.html</trackback:ping><description><![CDATA[     鎽樿:         session鏄痟ibernate榪愬仛鐨勬牳蹇冿紝鏄湁SessionFactory鎵鍒涘緩錛宻essionFactory鏄嚎紼嬪畨鍏ㄧ殑錛屼綘鍙互璁╁涓嚎紼嬪悓鏃跺瓨鍙朣essionFactory,鑰屼笉浼氭湁璧勬簮鍏辯敤鐨勯棶棰橈紝鐒惰宻ession涓嶆槸璁捐涓虹嚎紼嬪畨鍏ㄧ殑錛屾墍浠ヨ澶氫釜綰跨▼鍏辯敤涓涓猻ession錛屽皢鍙戠敓璧勬枡鍏辯敤鑰屽彂鐢?..  <a href='http://m.tkk7.com/henry1451/articles/201292.html'>闃呰鍏ㄦ枃</a><img src ="http://m.tkk7.com/henry1451/aggbug/201292.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/henry1451/" target="_blank">henry1451</a> 2008-05-18 20:36 <a href="http://m.tkk7.com/henry1451/articles/201292.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鍦℉ibernate搴旂敤涓浣曞鐞嗘壒閲忔洿鏂板拰鎵歸噺鍒犻櫎(杞?http://m.tkk7.com/henry1451/articles/196481.htmlhenry1451henry1451Sun, 27 Apr 2008 08:33:00 GMThttp://m.tkk7.com/henry1451/articles/196481.htmlhttp://m.tkk7.com/henry1451/comments/196481.htmlhttp://m.tkk7.com/henry1451/articles/196481.html#Feedback0http://m.tkk7.com/henry1451/comments/commentRss/196481.htmlhttp://m.tkk7.com/henry1451/services/trackbacks/196481.html鎵歸噺鏇存柊鏄寚鍦ㄤ竴涓簨鍔′腑鏇存柊澶ф壒閲忔暟鎹紝鎵歸噺鍒犻櫎鏄寚鍦ㄤ竴涓簨鍔′腑鍒犻櫎澶ф壒閲忔暟鎹備互涓嬬▼搴忕洿鎺ラ氳繃Hibernate API鎵歸噺鏇存柊CUSTOMERS琛ㄤ腑騫撮緞澶т簬闆剁殑鎵鏈夎褰曠殑AGE瀛楁錛?br /> 顥ヮ棩
顥ヮ棩tx = session.beginTransaction();
顥ヮ棩Iterator customers=session.find("from Customer c where c.age>0").iterator();
顥ヮ棩while(customers.hasNext()){
顥ヮ棩Customer customer=(Customer)customers.next();
顥ヮ棩customer.setAge(customer.getAge()+1);
顥ヮ棩}
顥ヮ棩tx.commit();
顥ヮ棩session.close();
顥ヮ棩
顥ヮ棩濡傛灉CUSTOMERS琛ㄤ腑鏈?涓囨潯騫撮緞澶т簬闆剁殑璁板綍錛岄偅涔圫ession鐨刦ind()鏂規硶浼氫竴涓嬪瓙鍔犺澆1涓囦釜Customer瀵硅薄鍒板唴瀛樸傚綋鎵цtx.commit()鏂規硶鏃訛紝浼氭竻鐞嗙紦瀛橈紝Hibernate鎵ц1涓囨潯鏇存柊CUSTOMERS琛ㄧ殑update璇彞錛?br /> 顥ヮ棩
顥ヮ棩update CUSTOMERS set AGE=? …. where ID=i;
顥ヮ棩update CUSTOMERS set AGE=? …. where ID=j;
顥ヮ棩update CUSTOMERS set AGE=? …. where ID=k;
顥ヮ棩
顥ヮ棩浠ヤ笂鎵歸噺鏇存柊鏂瑰紡鏈変袱涓己鐐癸細
顥ヮ棩(1) 鍗犵敤澶ч噺鍐呭瓨錛屽繀欏繪妸1涓囦釜Customer瀵硅薄鍏堝姞杞藉埌鍐呭瓨錛岀劧鍚庝竴涓鏇存柊瀹冧滑銆?br /> 顥ヮ棩(2) 鎵ц鐨剈pdate璇彞鐨勬暟鐩お澶氾紝姣忎釜update璇彞鍙兘鏇存柊涓涓狢ustomer瀵硅薄錛屽繀欏婚氳繃1涓囨潯update璇彞鎵嶈兘鏇存柊涓涓囦釜Customer瀵硅薄錛岄綣佺殑璁塊棶鏁版嵁搴擄紝浼氬ぇ澶ч檷浣庡簲鐢ㄧ殑鎬ц兘銆?br /> 顥ヮ棩涓轟簡榪呴熼噴鏀?涓囦釜Customer瀵硅薄鍗犵敤鐨勫唴瀛橈紝鍙互鍦ㄦ洿鏂版瘡涓狢ustomer瀵硅薄鍚庯紝灝辮皟鐢⊿ession鐨別vict()鏂規硶绔嬪嵆閲婃斁瀹冪殑鍐呭瓨錛?br />
tx = session.beginTransaction();
Iterator customers=session.find("from Customer c where c.age>0").iterator();
while(customers.hasNext()){
Customer customer=(Customer)customers.next();
customer.setAge(customer.getAge()+1);
session.flush();
session.evict(customer);
}
tx.commit();
session.close();

鍦ㄤ互涓婄▼搴忎腑錛屼慨鏀逛簡涓涓狢ustomer瀵硅薄鐨刟ge灞炴у悗錛屽氨绔嬪嵆璋冪敤Session鐨刦lush()鏂規硶鍜宔vict()鏂規硶錛宖lush()鏂規硶浣縃ibernate绔嬪埢鏍規嵁榪欎釜Customer瀵硅薄鐨勭姸鎬佸彉鍖栧悓姝ユ洿鏂版暟鎹簱錛屼粠鑰岀珛鍗蟲墽琛岀浉鍏崇殑update璇彞錛沞vict()鏂規硶鐢ㄤ簬鎶婅繖涓狢ustomer瀵硅薄浠庣紦瀛樹腑娓呴櫎鍑哄幓錛屼粠鑰屽強鏃墮噴鏀懼畠鍗犵敤鐨勫唴瀛樸?br /> 浣唀vict()鏂規硶鍙兘紼嶅井鎻愰珮鎵歸噺鎿嶄綔鐨勬ц兘錛屽洜涓轟笉綆℃湁娌℃湁浣跨敤evict()鏂規硶錛孒ibernate閮藉繀欏繪墽琛?涓囨潯update璇彞錛屾墠鑳芥洿鏂?涓囦釜Customer瀵硅薄錛岃繖鏄獎鍝嶆壒閲忔搷浣滄ц兘鐨勯噸瑕佸洜绱犮傚亣濡侶ibernate鑳界洿鎺ユ墽琛屽涓婼QL璇彞錛?br />
update CUSTOMERS set AGE=AGE+1 where AGE>0;

閭d箞浠ヤ笂涓鏉pdate璇彞灝辮兘鏇存柊CUSTOMERS琛ㄤ腑鐨?涓囨潯璁板綍銆備絾鏄疕ibernate騫舵病鏈夌洿鎺ユ彁渚涙墽琛岃繖縐島pdate璇彞鐨勬帴鍙c傚簲鐢ㄧ▼搴忓繀欏葷粫榪嘓ibernate API錛岀洿鎺ラ氳繃JDBC API鏉ユ墽琛岃SQL璇彞錛?br />
tx = session.beginTransaction();
Connection con=session.connection();
PreparedStatement stmt=con.prepareStatement("update CUSTOMERS set AGE=AGE+1 "
+"where AGE>0 ");
stmt.executeUpdate();
tx.commit();

浠ヤ笂紼嬪簭婕旂ず浜嗙粫榪嘓ibernate API錛岀洿鎺ラ氳繃JDBC API璁塊棶鏁版嵁搴撶殑榪囩▼銆傚簲鐢ㄧ▼搴忛氳繃Session鐨刢onnection()鏂規硶鑾峰緱璇ession浣跨敤鐨勬暟鎹簱榪炴帴錛岀劧鍚庨氳繃瀹冨垱寤篜reparedStatement瀵硅薄騫舵墽琛孲QL璇彞銆傚煎緱娉ㄦ剰鐨勬槸錛屽簲鐢ㄧ▼搴忎粛鐒墮氳繃Hibernate鐨凾ransaction鎺ュ彛鏉ュ0鏄庝簨鍔¤竟鐣屻?br /> 濡傛灉搴曞眰鏁版嵁搴擄紙濡侽racle錛夋敮鎸佸瓨鍌ㄨ繃紼嬶紝涔熷彲浠ラ氳繃瀛樺偍榪囩▼鏉ユ墽琛屾壒閲忔洿鏂般傚瓨鍌ㄨ繃紼嬬洿鎺ュ湪鏁版嵁搴撲腑榪愯錛岄熷害鏇村姞蹇傚湪Oracle鏁版嵁搴撲腑鍙互瀹氫箟涓涓悕涓篵atchUpdateCustomer()鐨勫瓨鍌ㄨ繃紼嬶紝浠g爜濡備笅錛?br />
create or replace procedure batchUpdateCustomer(p_age in number) as
begin
update CUSTOMERS set AGE=AGE+1 where AGE>p_age;
end;

浠ヤ笂瀛樺偍榪囩▼鏈変竴涓弬鏁皃_age錛屼唬琛ㄥ鎴風殑騫撮緞錛屽簲鐢ㄧ▼搴忓彲鎸夌収浠ヤ笅鏂瑰紡璋冪敤瀛樺偍榪囩▼錛?br /> tx = session.beginTransaction();
Connection con=session.connection();
String procedure = "{call batchUpdateCustomer(?) }";
CallableStatement cstmt = con.prepareCall(procedure);
cstmt.setInt(1,0); //鎶婂勾榫勫弬鏁拌涓?
cstmt.executeUpdate();
tx.commit();

浠庝笂闈㈢▼搴忕湅鍑猴紝搴旂敤紼嬪簭涔熷繀欏葷粫榪嘓ibernate API錛岀洿鎺ラ氳繃JDBC API鏉ヨ皟鐢ㄥ瓨鍌ㄨ繃紼嬨?br /> Session鐨勫悇縐嶉噸杞藉艦寮忕殑update()鏂規硶閮戒竴嬈″彧鑳芥洿鏂頒竴涓璞★紝鑰宒elete()鏂規硶鐨勬湁浜涢噸杞藉艦寮忓厑璁鎬互HQL璇彞浣滀負鍙傛暟錛屼緥濡傦細

session.delete("from Customer c where c.age>0");

濡傛灉CUSTOMERS琛ㄤ腑鏈?涓囨潯騫撮緞澶т簬闆剁殑璁板綍錛岄偅涔堜互涓婁唬鐮佽兘鍒犻櫎涓涓囨潯璁板綍銆備絾鏄疭ession鐨刣elete()鏂規硶騫舵病鏈夋墽琛屼互涓媎elete璇彞

delete from CUSTOMERS where AGE>0;

Session鐨刣elete()鏂規硶鍏堥氳繃浠ヤ笅select璇彞鎶?涓囦釜Customer瀵硅薄鍔犺澆鍒板唴瀛樹腑錛?br />
select * from CUSTOMERS where AGE>0;

鎺ヤ笅鏉ユ墽琛屼竴涓囨潯delete璇彞錛岄愪釜鍒犻櫎Customer瀵硅薄錛?br />
delete from CUSTOMERS where ID=i;
delete from CUSTOMERS where ID=j;
delete from CUSTOMERS where ID=k;

鐢辨鍙錛岀洿鎺ラ氳繃Hibernate API榪涜鎵歸噺鏇存柊鍜屾壒閲忓垹闄ら兘涓嶅煎緱鎺ㄨ崘銆傝岀洿鎺ラ氳繃JDBC API鎵ц鐩稿叧鐨凷QL璇彞鎴栬皟鐢ㄧ浉鍏崇殑瀛樺偍榪囩▼錛屾槸鎵歸噺鏇存柊鍜屾壒閲忓垹闄ょ殑鏈浣蟲柟寮忥紝榪欎袱縐嶆柟寮忛兘鏈変互涓嬩紭鐐癸細

(1) 鏃犻渶鎶婃暟鎹簱涓殑澶ф壒閲忔暟鎹厛鍔犺澆鍒板唴瀛樹腑錛岀劧鍚庨愪釜鏇存柊鎴栦慨鏀瑰畠浠紝鍥犳涓嶄細娑堣楀ぇ閲忓唴瀛樸?br /> (2) 鑳藉湪涓鏉QL璇彞涓洿鏂版垨鍒犻櫎澶ф壒閲忕殑鏁版嵁銆?

henry1451 2008-04-27 16:33 鍙戣〃璇勮
]]>
主站蜘蛛池模板: 亚洲第一永久AV网站久久精品男人的天堂AV | 7777久久亚洲中文字幕蜜桃| 免费在线观看中文字幕| 免费精品国产自产拍在线观看 | 日韩精品人妻系列无码专区免费 | 无码人妻精品中文字幕免费| 亚洲日韩国产欧美一区二区三区 | 亚洲女初尝黑人巨高清| 91在线视频免费91| 精品亚洲成AV人在线观看| 97无码免费人妻超级碰碰碰碰 | 色屁屁www影院免费观看视频| 亚洲va久久久噜噜噜久久男同| 无码乱肉视频免费大全合集| 一二三四在线观看免费中文在线观看| 亚洲人成电影在在线观看网色| 国产免费一区二区三区VR| 久久久久久影院久久久久免费精品国产小说| 亚洲第一街区偷拍街拍| 91在线亚洲精品专区| 亚洲电影日韩精品| 最新中文字幕免费视频| 免费成人高清在线视频| 美女18一级毛片免费看| 亚洲精品在线播放视频| 亚洲一区二区女搞男| 国产精品无码免费视频二三区| 久久久久久影院久久久久免费精品国产小说 | 亚洲小视频在线观看| 亚洲国产人成精品| a毛片基地免费全部视频| 免费国产成人α片| 一级中文字幕免费乱码专区| 亚洲夂夂婷婷色拍WW47| 久久久亚洲裙底偷窥综合| 亚洲精品成人片在线观看精品字幕| 美女被免费视频网站a国产| 亚洲精品免费在线视频| 久99久精品免费视频热77| 久久嫩草影院免费看夜色| 免费视频精品一区二区|