锘??xml version="1.0" encoding="utf-8" standalone="yes"?>久久精品国产亚洲av麻豆小说,亚洲a级在线观看,久热综合在线亚洲精品http://www.tkk7.com/lsbwahaha/category/38817.htmlzh-cnMon, 06 Apr 2009 04:18:32 GMTMon, 06 Apr 2009 04:18:32 GMT60hibernate浜岀駭緙撳瓨http://www.tkk7.com/lsbwahaha/archive/2009/04/06/264086.html鑳¢箯鑳¢箯Mon, 06 Apr 2009 04:02:00 GMThttp://www.tkk7.com/lsbwahaha/archive/2009/04/06/264086.htmlhttp://www.tkk7.com/lsbwahaha/comments/264086.htmlhttp://www.tkk7.com/lsbwahaha/archive/2009/04/06/264086.html#Feedback0http://www.tkk7.com/lsbwahaha/comments/commentRss/264086.htmlhttp://www.tkk7.com/lsbwahaha/services/trackbacks/264086.htmlhibernate 浜岀駭緙撳瓨錛?緙撳瓨鐨勬槸瀹炰綋瀵硅薄錛屼簩綰х紦瀛樻槸鏀懼彉鍖栦笉鏄緢澶х殑鏁版嵁)








浜岀駭緙撳瓨?shù)篃绉皹q涚▼綰х殑緙撳瓨鎴朣essionFactory綰х殑緙撳瓨錛岃屼簩綰х紦瀛樺彲浠ヨ鎵鏈夌殑session(hibernate涓殑)鍏變韓浜岀駭緙撳瓨鐨勭敓鍛藉懆鏈熷拰SessionFactory鐨勭敓鍛藉懆鏈熶竴鑷達(dá)紝SessionFactory鍙互綆$悊浜岀駭緙撳瓨

 

浜岀駭緙撳瓨鐨勯厤緗拰浣跨敤錛?/p>

1.灝唀chcache.xml鏂囦歡鎷瘋礉鍒皊rc涓? 浜岀駭緙撳瓨hibernate榛樿鏄紑鍚殑錛屾墜鍔ㄥ紑鍚?/p>

2.寮鍚簩綰х紦瀛橈紝淇敼hibernate.cfg.xml鏂囦歡,

<property name=”hibernate.cache.user_second_level_cache”>true</property>

3.鎸囧畾緙撳瓨?shù)骇鍝佹彁渚涘?/p>

<property name=”hibernate.cache.provider_calss”>org.hibernate.cache.EhCacheProvider</property>

 

4.鎸囧畾閭d簺瀹炰綋綾諱嬌鐢ㄤ簩綰х紦瀛橈紙涓ょ鏂規(guī)硶錛屾帹鑽愪嬌鐢ㄧ浜岀錛?/p>

絎竴縐嶏細(xì)鍦?.hbm.xml涓紝鍦?lt;id>涔嬪墠鍔犲叆

<cache usage=”read-only” />, 浣跨敤浜岀駭緙撳瓨

絎簩縐嶏細(xì)鍦╤ibernate.cfg.xml閰嶇疆鏂囦歡涓?鍦?lt;mapping resource=”com/Studnet.hbm.xml” />鍚庨潰鍔犱笂錛?/p>

<class-cache class=” com.Studnet” usage=”read-only” /> 

 

浜岀駭緙撳瓨鏄紦瀛樺疄浣撳璞$殑

浜?jiǎn)瑙d竴綰х紦瀛樺拰浜岀駭緙撳瓨鐨勪氦浜?/p>

 

 

 

 

嫻嬭瘯浜岀駭緙撳瓨錛?/strong>

涓錛庡紑鍚袱涓?/strong>session涓彂鍑轟袱嬈?/strong>load鏌ヨ錛?/strong>get涓?/strong>load涓鏍鳳紝鍚屾牱涓嶄細(xì)鏌ヨ鏁版嵁搴擄級(jí),

Student sutdent = (Student)session.load(Student.class,1);

       System.out.println(student.getName());

sessioin.close();

………..

       sutdent = (Student)session.load(Student.class,1);

       System.out.println(student.getName());

寮鍚袱涓猻ession涓彂鍑轟袱嬈oad鏌ヨ錛岀涓嬈oad鐨勬椂鍊欎笉浼?xì)鍘绘煡璇㈡暟鎹簱锛屽洜湄?fù)浠栨槸LAZY鐨勶紝褰撲嬌鐢ㄧ殑鏃跺欐墠鍘繪煡璇㈡暟鎹簱錛?nbsp; 絎簩嬈oad鐨勬椂鍊欎篃涓嶄細(xì)錛屽綋浣跨敤鐨勬椂鍊欐煡璇㈡暟鎹簱錛屽紑鍚簡(jiǎn)浜岀駭緙撳瓨錛屼篃涓嶄細(xì)鏌ヨ鏁版嵁搴撱?/p>

 

 

浜岋紟寮鍚袱涓?/strong>session錛屽垎鍒皟鐢?/strong>load錛屽啀浣跨敤sessionFactory娓呮浜岀駭緙撳瓨

Student sutdent = (Student)session.load(Student.class,1);

       System.out.println(student.getName());

sessioin.close();

………..

SessionFactory factory = HibernateUtil.getSessionFactory();

//factory.evict(Student.class); //娓呴櫎鎵鏈塖tudent瀵硅薄

Factory.evict(Student.class,1); //娓呴櫎鎸囧畾id=1 鐨勫璞?/p>

 

       sutdent = (Student)session.load(Student.class,1);

       System.out.println(student.getName());

寮鍚袱涓猻ession涓彂鍑轟袱嬈oad鏌ヨ錛岀涓嬈oad鐨勬椂鍊欎笉浼?xì)鍘绘煡璇㈡暟鎹簱锛屽洜湄?fù)浠栨槸LAZY鐨勶紝褰撲嬌鐢ㄧ殑鏃跺欐墠鍘繪煡璇㈡暟鎹簱錛?nbsp; 絎簩嬈oad鐨勬椂鍊欎篃涓嶄細(xì)錛屽綋浣跨敤鐨勬椂鍊欐煡璇㈡暟鎹簱錛屽畠瑕佹煡璇㈡暟鎹簱錛屽洜涓轟簩綰х紦瀛樹(shù)腑琚竻闄や簡(jiǎn)

 

涓夛紟涓綰х紦瀛樺拰浜岀駭緙撳瓨鐨勪氦浜?/strong>

 

session.setCacheMode(CacheMode.GET);    //璁劇疆鎴?鍙槸浠庝簩綰х紦瀛橀噷璇?涓嶅悜浜岀駭緙撳瓨閲屽啓鏁版嵁

Student sutdent = (Student)session.load(Student.class,1);

       System.out.println(student.getName());

sessioin.close();

………..

SessionFactory factory = HibernateUtil.getSessionFactory();

//factory.evict(Student.class); //娓呴櫎鎵鏈塖tudent瀵硅薄

Factory.evict(Student.class,1); //娓呴櫎鎸囧畾id=1 鐨勫璞?/p>

 

       sutdent = (Student)session.load(Student.class,1);

       System.out.println(student.getName());

寮鍚袱涓猻ession涓彂鍑轟袱嬈oad鏌ヨ錛岀涓嬈oad鐨勬椂鍊欎笉浼?xì)鍘绘煡璇㈡暟鎹簱锛屽洜湄?fù)浠栨槸LAZY鐨勶紝褰撲嬌鐢ㄧ殑鏃跺欐墠鍘繪煡璇㈡暟鎹簱錛?nbsp; 絎簩嬈oad鐨勬椂鍊欎篃涓嶄細(xì)錛屽綋浣跨敤鐨勬椂鍊欐煡璇㈡暟鎹簱錛屽畠瑕佹煡璇㈡暟鎹簱錛屽洜涓?璁劇疆浜?jiǎn)CacheMode涓篏ET,(load璁劇疆鎴愪笉鑳藉線(xiàn)浜岀駭緙撳啿涓啓鏁版嵁), 鎵浠ヤ簩綰х紦鍐蹭腑娌℃湁鏁版嵁

 

 

 

session.setCacheMode(CacheMode.PUT);  //璁劇疆鎴愬彧鏄悜浜岀駭緙撳瓨閲屽啓鏁版嵁錛屼笉璇繪暟鎹?/p>

Student sutdent = (Student)session.load(Student.class,1);

       System.out.println(student.getName());

sessioin.close();

………..

SessionFactory factory = HibernateUtil.getSessionFactory();

//factory.evict(Student.class); //娓呴櫎鎵鏈塖tudent瀵硅薄

Factory.evict(Student.class,1); //娓呴櫎鎸囧畾id=1 鐨勫璞?/p>

 

       sutdent = (Student)session.load(Student.class,1);

       System.out.println(student.getName());

寮鍚袱涓猻ession涓彂鍑轟袱嬈oad鏌ヨ錛岀涓嬈oad鐨勬椂鍊欎笉浼?xì)鍘绘煡璇㈡暟鎹簱锛屽洜湄?fù)浠栨槸LAZY鐨勶紝褰撲嬌鐢ㄧ殑鏃跺欐墠鍘繪煡璇㈡暟鎹簱錛?nbsp; 絎簩嬈oad鐨勬椂鍊欎篃涓嶄細(xì)錛屽綋浣跨敤鐨勬椂鍊欐煡璇㈡暟鎹簱錛屽畠瑕佹煡璇㈡暟鎹簱錛屽洜涓鴻緗簡(jiǎn)CacheMode涓篜OST,(load璁劇疆鎴愬彧鏄悜浜岀駭緙撳瓨閲屽啓鏁版嵁錛屼笉璇繪暟鎹?

 



鑳¢箯 2009-04-06 12:02 鍙戣〃璇勮
]]>
hibernate涓綰х紦瀛?/title><link>http://www.tkk7.com/lsbwahaha/archive/2009/04/06/264085.html</link><dc:creator>鑳¢箯</dc:creator><author>鑳¢箯</author><pubDate>Mon, 06 Apr 2009 03:59:00 GMT</pubDate><guid>http://www.tkk7.com/lsbwahaha/archive/2009/04/06/264085.html</guid><wfw:comment>http://www.tkk7.com/lsbwahaha/comments/264085.html</wfw:comment><comments>http://www.tkk7.com/lsbwahaha/archive/2009/04/06/264085.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/lsbwahaha/comments/commentRss/264085.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/lsbwahaha/services/trackbacks/264085.html</trackback:ping><description><![CDATA[<p>hibernate 涓綰х紦瀛橈細(xì)(緙撳瓨鐨勬槸瀹炰綋瀵硅薄)</p> <p>涓綰х紦瀛樺緢鐭拰session鐨勭敓鍛藉懆鏈熶竴鑷達(dá)紝涓綰х紦瀛樹(shù)篃鍙玸ession綰х殑緙撳瓨鎴栦簨鍔$紦瀛?/p> <p><strong> <wbr></strong></p> <p>鍝簺鏂規(guī)硶鏀寔涓綰х紦瀛橈細(xì)</p> <p>*get()</p> <p>*load()</p> <p>*iterate() <wbr> (鏌ヨ瀹炰綋瀵硅薄)</p> <p> <wbr></p> <p>濡備綍綆$悊涓綰х紦瀛橈細(xì)</p> <p>* session.clear() session.evict()</p> <p> <wbr></p> <p>濡備綍閬垮厤涓嬈℃уぇ閲忕殑瀹炰綋鏁版嵁鍏ュ簱瀵艱嚧鍐呭瓨婧㈠嚭</p> <p>*鍏坒lush錛屽啀clear</p> <p> <wbr></p> <p>濡傛灉鏁版嵁閲忕壒鍒ぇ錛岃冭檻閲囩敤jdbc瀹炵幇錛屽鏋渏dbc涔熶笉鑳芥弧瓚寵姹傦紝鍙互鑰冭檻閲囩敤鏁版嵁搴撴湰韜殑鐗瑰畾瀵煎叆宸ュ叿</p> <p> <wbr></p> <p><strong>涓錛?/strong><strong>Load</strong><strong>嫻嬭瘯</strong><strong>:</strong> <strong>鍦ㄥ悓涓涓?/strong><strong>session</strong><strong>涓彂鍑轟袱嬈?/strong><strong>load</strong><strong>鏌ヨ</strong></p> <p> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> Student sutdent = (Student)session.load(Student.class,1);</p> <p> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> System.out.println(student.getName());</p> <p> <wbr></p> <p> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> sutdent = (Student)session.load(Student.class,1);</p> <p> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> System.out.println(student.getName());</p> <p> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> 鍦ㄥ悓涓涓猻ession涓彂鍑轟袱嬈oad鏌ヨ錛岀涓嬈oad鐨勬椂鍊欎笉浼?xì)鍘绘煡璇㈡暟鎹簱锛屽洜湄?fù)浠栨槸LAZY鐨勶紝褰撲嬌鐢ㄧ殑鏃跺欐墠鍘繪煡璇㈡暟鎹簱錛?nbsp;<wbr> 絎簩嬈oad鐨勬椂鍊欎篃涓嶄細(xì)錛屽綋浣跨敤鐨勬椂鍊欎篃涓嶄細(xì)鏌ヨ鏁版嵁搴擄紝鍥犱負(fù)浠栧湪緙撳瓨閲屾壘鍒幫紝涓嶄細(xì)鍙戝嚭sql</p> <p> <wbr></p> <p> <wbr></p> <p><strong>Load</strong><strong>嫻嬭瘯</strong><strong>:</strong> <strong>寮鍚袱涓?/strong><strong>session</strong><strong>涓彂鍑轟袱嬈?/strong><strong>load</strong><strong>鏌ヨ</strong></p> <p>Student sutdent = (Student)session.load(Student.class,1);</p> <p> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> System.out.println(student.getName());</p> <p>sessioin.close();</p> <p>………..</p> <p> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> sutdent = (Student)session.load(Student.class,1);</p> <p> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> System.out.println(student.getName());</p> <p> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> 寮鍚袱涓猻ession涓彂鍑轟袱嬈oad鏌ヨ錛岀涓嬈oad鐨勬椂鍊欎笉浼?xì)鍘绘煡璇㈡暟鎹簱锛屽洜湄?fù)浠栨槸LAZY鐨勶紝褰撲嬌鐢ㄧ殑鏃跺欐墠鍘繪煡璇㈡暟鎹簱錛?nbsp;<wbr> 絎簩嬈oad鐨勬椂鍊欎篃涓嶄細(xì)錛屽綋浣跨敤鐨勬椂鍊欐煡璇㈡暟鎹簱錛屽洜涓簊ession闂翠笉鑳藉叡浜竴綰х紦瀛樼殑鏁版嵁,鍥犱負(fù)浠栦細(xì)闅弒ession鐨勭敓鍛藉懆鏈熷瓨鍦ㄥ拰娑堜骸</p> <p> <wbr></p> <p> <wbr></p> <p><strong>浜岋紟</strong><strong>Get</strong><strong>嫻嬭瘯</strong><strong>:</strong> <strong>鍦ㄥ悓涓涓?/strong><strong>session</strong><strong>涓彂鍑轟袱嬈?/strong><strong>get</strong><strong>鏌ヨ</strong></p> <p> <wbr> <wbr>  <wbr>Student sutdent = (Student)session.get(Student.class,1);</p> <p> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> System.out.println(student.getName());</p> <p> <wbr></p> <p> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> sutdent = (Student)session.get(Student.class,1);</p> <p> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> System.out.println(student.getName());</p> <p> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> 鍦ㄥ悓涓涓猻ession涓彂鍑轟袱嬈et鏌ヨ錛?絎竴嬈et鐨勬椂鍊欏幓鏌ヨ鏁版嵁搴擄紝絎簩嬈et鐨勬椂鍊欎笉浼?xì)鏌ヨ鏁版嵁搴撳Q屽洜涓轟粬鍦ㄧ紦瀛橀噷鎵懼埌錛屼笉浼?xì)鍙戝嚭sql</p> <p> <wbr></p> <p> <wbr></p> <p><strong>涓夛紟</strong><strong>iterate</strong><strong>嫻嬭瘯</strong><strong>:</strong> <strong>鍦ㄥ悓涓涓?/strong><strong>session</strong><strong>涓彂鍑轟袱嬈?/strong><strong>iterator</strong><strong>鏌ヨ</strong></p> <p>Student student = (Student)session.createQuery(“from Student s where s.id=1”).iterate().next();</p> <p>System.out.println(student.getName());</p> <p> <wbr></p> <p>student = (Student)session.createQuery(“from Student s where s.id=1”).iterate().next();</p> <p>System.out.println(student.getName());</p> <p> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> 鍦ㄥ悓涓涓猻ession涓彂鍑轟袱嬈terator鏌ヨ錛岀涓嬈terate().next()鐨勬椂鍊欎細(xì)鍙戝嚭鏌ヨid鐨剆ql錛屼嬌鐢ㄧ殑鏃跺欎細(xì)鍙戝嚭鐩稿簲鐨勬煡璇㈠疄浣撳璞★紝絎簩嬈terate().next()鐨勬椂鍊欎細(xì)鍙戝嚭鏌ヨid鐨剆ql錛屼笉浼?xì)鍙戝嚭鏌ヨ瀹炰綋瀵硅薄鐨剆ql錛屽洜涓篿terate浣跨敤緙撳瓨錛屼笉浼?xì)鍙戝嚭sql</p> <p> <wbr></p> <p> <wbr></p> <p><strong>鍥涳紟</strong><strong>Iterate</strong><strong>鏌ヨ灞炴ф祴璇?/strong><strong>:</strong> <strong>鍚屼竴涓?/strong><strong>session</strong><strong>涓彂鍑轟袱嬈℃煡璇㈠睘鎬?/strong></p> <p>String name = (String)session.createQuery(“select s.name from Student s where s.id=1”).iterate().next();</p> <p>System.out.println(name);</p> <p> <wbr></p> <p>String name = (String)session.createQuery(“select s.name from Student s where s.id=1”).iterate().next();</p> <p>System.out.println(name);</p> <p> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> 鍦ㄥ悓涓涓猻ession涓彂鍑轟袱嬈℃煡璇㈠睘鎬э紝 絎竴嬈terate().next()鐨勬椂鍊欎細(xì)鍙戝嚭鏌ヨ灞炴х殑sql錛岀浜屾iterate().next()鐨勬椂鍊欎細(xì)鍙戝嚭鏌ヨ灞炴х殑sql錛宨terate鏌ヨ鏅氬睘鎬э紝涓綰х紦瀛樹(shù)笉浼?xì)缂撳瓨锛屾墍浠ヤ細(xì)鍙戝嚭sql</p> <p> <wbr></p> <p> <wbr></p> <strong>浜旓紟鍚屼竴涓?/strong><strong>session</strong><strong>涓厛</strong><strong>save</strong><strong>錛屽啀鍙戝嚭</strong><strong>load</strong><strong>鏌ヨ</strong><strong>save</strong><strong>榪囩殑鏁版嵁</strong> <p> <wbr></p> <p> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> Student stu = new Student();</p> <p> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> stu.setName(“鐜嬩簲”);</p> <p> <wbr></p> <p> <wbr> <wbr> Serializable id = session.save(stu);</p> <p> <wbr></p> <p>Student sutdent = (Student)session.load(Student.class,id);</p> <p> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> System.out.println(student.getName());</p> <p> <wbr></p> <p> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr></p> <p>save鐨勬椂鍊欙紝浠栦細(xì)鍦ㄧ紦瀛橀噷鏀句竴浠?涓嶄細(xì)鍙戝嚭sql錛屽洜涓簊ave鏄嬌鐢ㄧ紦瀛樼殑</p> <p><strong>鍏紟鍚屼竴涓?/strong><strong>session</strong><strong>涓厛璋冪敤</strong><strong>load</strong><strong>鏌ヨ錛岀劧鍚庢墽琛?/strong><strong>sessio.clear()</strong><strong>鎴?/strong><strong>session.evict()</strong><strong>錛屽啀璋冪敤</strong><strong>load</strong><strong>鏌ヨ</strong></p> <p> <wbr></p> <p>Student sutdent = (Student)session.load(Student.class,1);</p> <p> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> System.out.println(student.getName());</p> <p> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> session.clear();</p> <p> <wbr></p> <p>Student sutdent = (Student)session.load(Student.class,1);</p> <p> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> System.out.println(student.getName());</p> <p> <wbr></p> <p> <wbr></p> <p> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> sessio.clear()鎴杝ession.evict()鍙互綆$悊涓綰х紦瀛橈紝涓綰х紦瀛樻棤娉曞彇娑堬紝浣嗗彲浠ョ鐞?</p> <p>涓婇潰鐨勮鍙ラ兘浼?xì)鍙戝嚭sql 鍥犱負(fù)涓綰х紦瀛樹(shù)腑鐨勫疄浣撹娓呴櫎浜?/p> <p><strong> <wbr></strong></p> <p><strong>涓冿紟鍚戞暟鎹簱涓壒閲忓姞鍏?/strong><strong>1000</strong><strong>鏉℃暟鎹?/strong></p> <p> <wbr></p> <p>for(int i=0;i<1000;i++){</p> <p> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> Student student = new Student();</p> <p> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> student.setName(“s” + i);</p> <p> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> session.save(student);</p> <p>//姣?0鏉℃暟鎹氨寮哄埗session灝嗘暟鎹寔涔呭寲錛屽悓鏃舵竻闄ょ紦瀛橈紝閬垮厤澶ч噺鏁版嵁閫犳垚鍐呭瓨婧㈠嚭</p> <p> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> if( i %20 == 0 ){</p> <p> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> session.flush();</p> <p> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> session.clear();</p> <p>}</p> <p>}</p> <p> </p> <img src ="http://www.tkk7.com/lsbwahaha/aggbug/264085.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/lsbwahaha/" target="_blank">鑳¢箯</a> 2009-04-06 11:59 <a href="http://www.tkk7.com/lsbwahaha/archive/2009/04/06/264085.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>hibernate鏌ヨ緙撳瓨http://www.tkk7.com/lsbwahaha/archive/2009/04/06/264084.html鑳¢箯鑳¢箯Mon, 06 Apr 2009 03:58:00 GMThttp://www.tkk7.com/lsbwahaha/archive/2009/04/06/264084.htmlhttp://www.tkk7.com/lsbwahaha/comments/264084.htmlhttp://www.tkk7.com/lsbwahaha/archive/2009/04/06/264084.html#Feedback0http://www.tkk7.com/lsbwahaha/comments/commentRss/264084.htmlhttp://www.tkk7.com/lsbwahaha/services/trackbacks/264084.html  

hibernate鏌ヨ緙撳瓨(hibernate榛樿鏄叧闂殑)

 

鏌ヨ緙撳瓨鏄拡瀵規(guī)櫘閫氬睘鎬х粨鏋滈泦鐨勭紦瀛?/p>

瀵瑰疄浣撳璞$殑緇撴灉闆嗗彧緙撳瓨id

 

鏌ヨ緙撳瓨鐨勭敓鍛藉懆鏈燂紝褰撳墠鍏寵仈鐨勮〃鍙戠敓淇敼錛岄偅涔堟煡璇㈢紦瀛樼敓鍛藉懆鏈熺粨鏉?/p>

 

鏌ヨ緙撳瓨鐨勯厤緗拰浣跨敤錛?/p>

1. 鍚敤鏌ヨ緙撳瓨錛氬湪hibernate.cfg.xml涓姞鍏ワ細(xì)

<property name=”hibernate.cache.use_query_cache”>true</property>

  2. 鍦ㄧ▼搴忎腑蹇呴』鎵嬪姩鍚敤鏌ヨ緙撳瓨錛屽錛歲uery.setCacheable(true);

 

 

嫻嬭瘯鏌ヨ緙撳瓨錛?/strong>

涓錛?nbsp; 寮鍚煡璇㈢紦瀛橈紝鍏抽棴浜岀駭緙撳瓨錛屽紑鍚竴涓?/strong>session錛屽垎鍒皟鐢?/strong>query.list  錛堟煡璇㈠睘鎬э級(jí)

 

Query query = session.createQuery(“select s.name from Student s”);

//鍚敤鏌ヨ緙撳瓨

query.setCacheable(true);

 

List names = query.list();

for(Iterator iter = names.terator();iter.hasNext();){

       String name = (String)iter.next();

       System.out.println(name);

}

 

System.out.println(“------------------------------------------”);

 

query = session.createQuery(“select s.name from Student s”);

//鍚敤鏌ヨ緙撳瓨

query.setCacheable(true);

 

names = query.list();

for(Iterator iter = names.terator();iter.hasNext();){

       String name = (String)iter.next();

       System.out.println(name);

}

絎簩嬈℃病鏈夊幓鏌ヨ鏁版嵁搴擄紝鍥犱負(fù)鍚敤浜?jiǎn)鏌ヨ缂撳?/p>

 

浜岋紟  寮鍚煡璇㈢紦瀛橈紝鍏抽棴浜岀駭緙撳瓨錛屽紑鍚袱涓?/strong>session錛屽垎鍒皟鐢?/strong>query.list  錛堟煡璇㈠睘鎬э級(jí)

 

Query query = session.createQuery(“select s.name from Student s”);

//鍚敤鏌ヨ緙撳瓨

query.setCacheable(true);

 

List names = query.list();

for(Iterator iter = names.terator();iter.hasNext();){

       String name = (String)iter.next();

       System.out.println(name);

}

 

session.close();

 

System.out.println(“------------------------------------------”);

………

Query query = session.createQuery(“select s.name from Student s”);

//鍚敤鏌ヨ緙撳瓨

query.setCacheable(true);

 

List names = query.list();

for(Iterator iter = names.terator();iter.hasNext();){

       String name = (String)iter.next();

       System.out.println(name);

}

絎簩嬈℃病鏈夊幓鏌ヨ鏁版嵁搴擄紝鍥犱負(fù)鏌ヨ緙撳瓨鐢熷懡鍛ㄦ湡涓巗ession鐢熷懡鍛ㄦ湡鏃犲叧

 

涓夛紟  寮鍚煡璇㈢紦瀛橈紝鍏抽棴浜岀駭緙撳瓨錛屽紑鍚袱涓?/strong>session錛屽垎鍒皟鐢?/strong>query.iterate 錛堟煡璇㈠睘鎬э級(jí)

 

Query query = session.createQuery(“select s.name from Student s”);

//鍚敤鏌ヨ緙撳瓨

query.setCacheable(true);

 

for(Iterator iter =query.iterate();iter.hasNext();){

       String name = (String)iter.next();

       System.out.println(name);

}

 

session.close();

 

System.out.println(“------------------------------------------”);

………

Query query = session.createQuery(“select s.name from Student s”);

//鍚敤鏌ヨ緙撳瓨

query.setCacheable(true);

 

for(Iterator iter = query.iterate();iter.hasNext();){

       String name = (String)iter.next();

       System.out.println(name);

}

絎簩鍘繪煡璇㈡暟鎹簱錛屽洜涓烘煡璇㈢紦瀛樺彧瀵筿uery.list()璧蜂綔鐢紝瀵筿uery.iterate()涓嶈搗浣滅敤,涔熷氨鏄query.iterate()涓嶄嬌鐢ㄦ煡璇㈢紦瀛?/p>

 

鍥涳紟  鍏抽棴鏌ヨ緙撳瓨錛屽叧闂簩綰х紦瀛橈紝寮鍚袱涓?/strong>session錛屽垎鍒皟鐢?/strong>query.list 錛堟煡璇㈠疄浣撳璞★級(jí)

 

Query query = session.createQuery(“ from Student s”);

//query.setCacheable(true);

List students = query.list();

for(Iterator iter = students.iterate();iter.hasNext();){

       Student stu = (Student)iter.next();

       System.out.println(stu.getName());

}

 

session.close();

 

System.out.println(“------------------------------------------”);

………

Query query = session.createQuery(“ from Student s”);

//query.setCacheable(true);

List students = query.list();

for(Iterator iter = students.iterate();iter.hasNext();){

       Student stu = (Student)iter.next();

       System.out.println(stu.getName());

}

絎簩鍘繪煡璇㈡暟鎹簱錛屽洜涓簂ist榛樿姣忔閮戒細(xì)鍙戝嚭鏌ヨsql

 

浜旓紟  寮鍚煡璇㈢紦瀛橈紝鍏抽棴浜岀駭緙撳瓨錛屽紑鍚袱涓?/strong>session錛屽垎鍒皟鐢?/strong>query.list 錛堟煡璇㈠疄浣撳璞★級(jí)

 

Query query = session.createQuery(“ from Student s”);

query.setCacheable(true);

List students = query.list();

for(Iterator iter = students.iterate();iter.hasNext();){

       Student stu = (Student)iter.next();

       System.out.println(stu.getName());

}

 

session.close();

 

System.out.println(“------------------------------------------”);

………

Query query = session.createQuery(“ from Student s”);

query.setCacheable(true);

List students = query.list();

for(Iterator iter = students.iterate();iter.hasNext();){

       Student stu = (Student)iter.next();

       System.out.println(stu.getName());

絎簩鍘繪煡璇㈡暟鎹簱鏃訛紝浼?xì)鍙戝嚭N鏉ql璇彞錛屽洜涓哄紑鍚簡(jiǎn)鏌ヨ緙撳瓨錛屽叧闂簡(jiǎn)浜岀駭緙撳瓨錛岄偅涔堟煡璇㈢紦瀛樹(shù)細(xì)緙撳瓨瀹炰綋瀵硅薄鐨刬d錛屾墍浠ibernate浼?xì)鏍规嵁瀹炰綋瀵硅薄鐨刬d鍘繪煡璇㈢浉搴旂殑瀹炰綋錛屽鏋滅紦瀛樹(shù)腑涓嶅瓨鍦ㄧ浉搴旂殑瀹炰綋錛岄偅涔堝皢鍙戝嚭鏍規(guī)嵁瀹炰綋id鏌ヨ鐨剆ql璇彞錛屽惁鍒欎笉浼?xì)鍙戝嚭sql錛屼嬌鐢ㄧ紦瀛樹(shù)腑鐨勬暟鎹?/p>

 

鍏紟  寮鍚煡璇㈢紦瀛橈紝寮鍚簩綰х紦瀛橈紝寮鍚袱涓?/strong>session錛屽垎鍒皟鐢?/strong>query.list 錛堟煡璇㈠疄浣撳璞★級(jí)

 

Query query = session.createQuery(“ from Student s”);

query.setCacheable(true);

List students = query.list();

for(Iterator iter = students.iterate();iter.hasNext();){

       Student stu = (Student)iter.next();

       System.out.println(stu.getName());

}

 

session.close();

 

System.out.println(“------------------------------------------”);

………

Query query = session.createQuery(“ from Student s”);

query.setCacheable(true);

List students = query.list();

for(Iterator iter = students.iterate();iter.hasNext();){

       Student stu = (Student)iter.next();

       System.out.println(stu.getName());

}

 

絎簩涓嶄細(xì)鍙戝嚭sql錛屽洜涓哄紑鍚簡(jiǎn)浜岀駭緙撳瓨鍜屾煡璇㈢紦瀛橈紝鏌ヨ緙撳瓨緙撳瓨?shù)簡(jiǎn)瀹炰綋瀵硅薄鐨刬d鍒楄〃錛宧ibernate浼?xì)鏍规嵁瀹炰綋瀵硅薄鐨刬d鍒楄〃鍒頒簩綰х紦瀛樹(shù)腑鍙栧緱鐩稿簲鐨勬暟鎹?/p>

鑳¢箯 2009-04-06 11:58 鍙戣〃璇勮
]]>
hiernate鎶撳彇絳栫暐鍜屾壒閲忕瓥鐣?/title><link>http://www.tkk7.com/lsbwahaha/archive/2009/04/06/264081.html</link><dc:creator>鑳¢箯</dc:creator><author>鑳¢箯</author><pubDate>Mon, 06 Apr 2009 03:57:00 GMT</pubDate><guid>http://www.tkk7.com/lsbwahaha/archive/2009/04/06/264081.html</guid><wfw:comment>http://www.tkk7.com/lsbwahaha/comments/264081.html</wfw:comment><comments>http://www.tkk7.com/lsbwahaha/archive/2009/04/06/264081.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/lsbwahaha/comments/commentRss/264081.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/lsbwahaha/services/trackbacks/264081.html</trackback:ping><description><![CDATA[<p><strong>鍦?/strong><strong>hibernate</strong><strong>涓緗細(xì)</strong></p> <p><strong>鏌ヨ鏁版嵁搴撴瘡嬈℃渶澶氳繑鍥?/strong><strong>50</strong><strong>鏉$粨鏋滐細(xì)</strong></p> <p><strong><property name=”hibernate.jdbc.fetch_size”>50</property></strong></p> <p><strong>30</strong><strong>鏉℃洿鏂版暟鎹簱涓嬈?/strong><strong>:</strong></p> <p><strong><property name= ”hibernatejdbc.batch_size”>30</property></strong></p> <p><strong> <wbr></strong><strong>浣嗕笉鏄墍鏈夌殑鏁版嵁搴撻兘鏀寔鐨勶紝</strong><strong>sqlServer</strong> <strong>鍜?/strong><strong>orcale</strong> <strong>閮芥敮鎸佺殑銆?/strong></p> <p><strong> <wbr></strong></p> <p><strong>涓錛?/strong><strong>hibernate</strong> <strong>鎶撳彇絳栫暐</strong><strong>(Fetch)</strong> <strong>鍗曠浠g悊鎵歸噺鎶撳彇</strong></p> <p> <wbr></p> <p><strong>1.fetch=”select”</strong> <strong>鍏寵仈瀹炰綋</strong></p> <p>//fetch 榛樿鏄痵elect</p> <p><many-to-one name="businessId" column="business_id" insert="true" update="true" fetch="select"></p> <p> <wbr></p> <p>Student student = (Student)session.load(Student.class,1);</p> <p>System.out.println(student.getName());</p> <p>System.out.println(student.getClasses().getName()); //澶氬涓涓殑灞炴х彮綰э紝鑾峰彇鐝駭鍚嶇О</p> <p> <wbr></p> <p>Fetch=”select” ,涓婇潰紼嬪簭浼?xì)鍙?鏉ql璇彞錛岀浜屾潯鍙戦佷竴鏉elect璇彞鎶撳彇褰撳墠瀵硅薄鍏寵仈瀹炰綋鎴栭泦鍚?(榪欓噷鎸囨槸鐝駭鍚嶇О)</p> <p> <wbr></p> <p><strong>2.fetch=” join”</strong> <strong>鍏寵仈瀹炰綋</strong></p> <p>//fetch 璁劇疆鎴?join</p> <p><many-to-one name="businessId" column="business_id" insert="true" update="true"</p> <p>fetch=" join "></p> <p> <wbr></p> <p>Student student = (Student)session.load(Student.class,1);</p> <p>System.out.println(student.getName());</p> <p>System.out.println(student.getClasses().getName()); //澶氬涓涓殑灞炴х彮綰э紝鑾峰彇鐝駭鍚嶇О</p> <p> <wbr></p> <p>fetch=” join” , 涓婇潰紼嬪簭浼?xì)鍙?鏉ql璇彞錛?hibernate浼?xì)閫氳繃select浣跨敤澶栭摼鎺ユ潵鍔犺澆鍏跺叧鑱斿疄浣撴垨闆嗗悎錛屾鏃秎azy浼?xì)澶辨?nbsp;<wbr></p> <p> <wbr></p> <p><strong>浜岋紟</strong><strong>hibernate</strong> <strong>鎶撳彇絳栫暐</strong><strong>(Fetch)</strong> <strong>闆嗗悎浠g悊鎵歸噺鎶撳彇</strong></p> <p> <wbr></p> <p><strong>1. <wbr> <wbr> <wbr> <wbr></strong> <strong>fetch=”select”</strong></p> <p>//fetch 榛樿鏄痵elect</p> <p align="left"><set name="students" inverse="true" cascade="all" fetch="select"></p> <p align="left"> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <key column="classid" /></p> <p align="left"> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <one-to-many class="com.Student" /></p> <p></set></p> <p> <wbr></p> <p>Classes cla = (Classes)session.load(Classes.class,1);</p> <p>System.out.println(cla.getName());</p> <p>for(Iterator iter = cla.getStudents().iterator();iter.hasNext();){</p> <p> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> Student student = (Student)iter.next();</p> <p> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> System.out.println(student.getName());</p> <p>}</p> <p> <wbr></p> <p>fetch=”select” ,涓婇潰紼嬪簭鐢ㄥ埌浜?jiǎn)灏卞彂sql璇彞,絎簩浠庡驚鐜腑鍙戜簡(jiǎn)N鏉?濡傛灉錛歠etch=”subselect”,鍒欏彧鏄彂閫佷竴鏉¤鍙ワ紝瑙佷笅闈?/p> <p> <wbr></p> <p><strong>2 fetch=”join”</strong></p> <p>//fetch 璁劇疆鎴恓oin</p> <p align="left"><set name="students" inverse="true" cascade="all" fetch="join"></p> <p align="left"> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <key column="classid" /></p> <p align="left"> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <one-to-many class="com.Student" /></p> <p></set></p> <p> <wbr></p> <p>Classes cla = (Classes)session.load(Classes.class,1);</p> <p>System.out.println(cla.getName());</p> <p>for(Iterator iter = cla.getStudents().iterator();iter.hasNext();){</p> <p> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> Student student = (Student)iter.next();</p> <p> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> System.out.println(student.getName());</p> <p>}</p> <p> <wbr></p> <p>Fetch=”select” ,涓婇潰紼嬪簭鍙彂浜?jiǎn)涓鏉ql璇彞</p> <p> <wbr></p> <p> <wbr></p> <p><strong>涓夛紟</strong><strong>hibernate</strong> <strong>鎶撳彇絳栫暐</strong><strong>(Fetch)</strong> <strong>闆嗗悎浠g悊鎵歸噺鎶撳彇</strong></p> <p> <wbr></p> <p><strong>2. <wbr> <wbr> <wbr> <wbr></strong> <strong>fetch=”subselect”</strong></p> <p>//fetch璁劇疆鎴恠ubselect</p> <p align="left"><set name="students" inverse="true" cascade="all" fetch="subselect"></p> <p align="left"> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <key column="classid" /></p> <p align="left"> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <one-to-many class="com.Student" /></p> <p></set></p> <p> <wbr></p> <p>List classesList = session.createQuery(“select c from Classes c where c.id in(1,2,3)”);</p> <p>for(Iterator iter=classesList.iterator();iter.hasNext();){</p> <p> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> Classess classess = (Classess)iter.next();</p> <p> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> System.out.println(“classes.name=”+ classes.getName());</p> <p> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> for(Iterator iter1 = classess.getStudents().iterator();iter1.hasNext();){</p> <p> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> Student student = (Student)iter1.next();</p> <p> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> System.out.println(student.getName());</p> <p>}</p> <p>}</p> <p> <wbr></p> <p>Fetch=”subselct” ,鍙﹀鍙戦佷竴鏉elect璇彞鎶撳彇鍦ㄥ墠闈㈡煡璇㈠埌鐨勬墍鏈夊疄浣撳璞$殑鍏寵仈闆嗗悎</p> <p> <wbr></p> <p> <wbr></p> <p><strong>鍥涳紟</strong><strong>hibernate</strong> <strong>鎵歸噺絳栫暐</strong><strong>batch-size</strong><strong>灞炴э紝鍙互鎵歸噺鍔犺澆瀹炰綋綾伙紝</strong></p> <p><strong>鍙傝</strong><strong>Classes.hbm.xml</strong><strong>錛屽悓鏃墮泦鍚堜篃鍙互鏄嬌鐢紝濡傦細(xì)</strong></p> <p><strong> <wbr></strong><set name="students" inverse="true" cascade="save-update" batch-size=”5”></p> <p><strong> <wbr></strong></p> <p>鍦ㄩ厤緗枃浠秇bm.xml 璁劇疆涓細(xì)</p> <p><class name="com.Classes " table="tb_classes" batch-size=”3”></p> <p> <wbr></p> <p>List students = session.createQuery(“select s from Student s where s.id in(:ids)”).setParameterList(“:ids”,new Object[]{1,11,21,31,41,51,61,71,81,91}).list();</p> <p> <wbr></p> <p>for(Iterator iter=students.iterator();iter.hasNext();){</p> <p> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> Student student = (Sutdent)iter.next();</p> <p> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> System.out.println(student.getName());</p> <p> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> System.out.println(student.getClassess().getName());</p> <p> <wbr></p> <p>}</p> <p> <wbr></p> <p>褰撶浜屼釜for寰幆鏃訛紝姣忔鍔犺澆 涔嬪墠璁劇疆鐨?鏁伴噺 瀹炰綋瀵硅薄, <wbr> 濡傦細(xì)鐜板湪璁劇疆3錛岄偅涔堝綋Iterator iter=students.iterator();iter.hasNext();鏃跺欙紝浠栦細(xì)鏌ヨ鍑?涓猻tudent瀵硅薄</p> <p><wbr></p> <img src ="http://www.tkk7.com/lsbwahaha/aggbug/264081.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/lsbwahaha/" target="_blank">鑳¢箯</a> 2009-04-06 11:57 <a href="http://www.tkk7.com/lsbwahaha/archive/2009/04/06/264081.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>hibernate鎮(zhèn)茶閿?涓庝箰瑙傞攣http://www.tkk7.com/lsbwahaha/archive/2009/04/06/264082.html鑳¢箯鑳¢箯Mon, 06 Apr 2009 03:57:00 GMThttp://www.tkk7.com/lsbwahaha/archive/2009/04/06/264082.htmlhttp://www.tkk7.com/lsbwahaha/comments/264082.htmlhttp://www.tkk7.com/lsbwahaha/archive/2009/04/06/264082.html#Feedback0http://www.tkk7.com/lsbwahaha/comments/commentRss/264082.htmlhttp://www.tkk7.com/lsbwahaha/services/trackbacks/264082.html鎮(zhèn)茶閿?/strong>

      

       鎮(zhèn)茶閿佺殑瀹炵幇錛岄氬父渚濊禆浜庢暟鎹簱鏈哄埗錛屽湪鏁翠釜榪囩▼涓皢鏁版嵁閿佸畾錛屽叾瀹冧換浣曠敤鎴烽兘涓嶈兘璇誨彇鎴栦慨鏀廣?/p>

 

涓句釜渚嬪瓙錛?/p>

//鏌ヨid=1鐨勯偅鏉¤褰曪紝浣跨敤鎮(zhèn)茶閿?/p>

User user = (User)session.load(User.class, 1 ,  LockMode.UPGRADE);

浣跨敤浜?jiǎn)鏁版嵁搴撲腑鐨?for update  閿佸畾

 

涔愯閿?/strong>

澶у鏁板熀浜庢暟鎹増鏈褰曟満鍒訛紙version錛夊疄鐜幫紝涓鍗婃槸鍦ㄦ暟鎹簱琛ㄥ姞鍏ヤ竴涓獀ersion瀛楁錛岃鍙栨暟鎹椂灝嗙増鏈彿涓鍚岃鍑猴紝涔嬪悗鏇存柊鏁版嵁鏃剁増鏈彿鍔犱竴錛屽鏋滄彁浜ゆ暟鎹椂鐗堟湰鍙峰皬浜庢垨絳変簬鏁版嵁搴撹〃涓殑鐗堟湰鍙鳳紝鍒欒涓烘暟鎹槸榪囨湡鐨勶紝鍚﹀垯緇欎簣鏇存柊銆?/p>

 

鍏跺疄騫墮潪鏄攣錛屾槸涓縐嶅啿紿佹嫻?nbsp; (娌℃湁hibernate涔熷彲浠ヤ嬌鐢ㄧ殑錛岃嚜宸辮鍦ㄦ暟鎹簱涓緩瀛楁鏉ユ帶鍒訛紝浣跨敤hibernate鏂逛究浜涳紝灝佽濂戒簡(jiǎn))

 

鍦?.hm.xml涓?娣誨姞綰㈣壊閮ㄥ垎錛?/p>

                                            

<class

name="com.tao3c.orm.TbBusinessInfo"  table="tb_business_info"  optimistic-lock=”version”>

 

鍏朵腑version鏄痗om.tao3c.orm.TbBusinessInfo綾葷殑灞炴э紝hiernbate浼?xì)鍘痪l存姢鐨勶紝涓嶇敤鑷繁鍘昏

 

 



鑳¢箯 2009-04-06 11:57 鍙戣〃璇勮
]]>
hibernate鎮(zhèn)茶閿?涓庝箰瑙傞攣http://www.tkk7.com/lsbwahaha/archive/2009/04/06/264083.html鑳¢箯鑳¢箯Mon, 06 Apr 2009 03:57:00 GMThttp://www.tkk7.com/lsbwahaha/archive/2009/04/06/264083.htmlhttp://www.tkk7.com/lsbwahaha/comments/264083.htmlhttp://www.tkk7.com/lsbwahaha/archive/2009/04/06/264083.html#Feedback0http://www.tkk7.com/lsbwahaha/comments/commentRss/264083.htmlhttp://www.tkk7.com/lsbwahaha/services/trackbacks/264083.html鎮(zhèn)茶閿?/strong>

      

       鎮(zhèn)茶閿佺殑瀹炵幇錛岄氬父渚濊禆浜庢暟鎹簱鏈哄埗錛屽湪鏁翠釜榪囩▼涓皢鏁版嵁閿佸畾錛屽叾瀹冧換浣曠敤鎴烽兘涓嶈兘璇誨彇鎴栦慨鏀廣?/p>

 

涓句釜渚嬪瓙錛?/p>

//鏌ヨid=1鐨勯偅鏉¤褰曪紝浣跨敤鎮(zhèn)茶閿?/p>

User user = (User)session.load(User.class, 1 ,  LockMode.UPGRADE);

浣跨敤浜?jiǎn)鏁版嵁搴撲腑鐨?for update  閿佸畾

 

涔愯閿?/strong>

澶у鏁板熀浜庢暟鎹増鏈褰曟満鍒訛紙version錛夊疄鐜幫紝涓鍗婃槸鍦ㄦ暟鎹簱琛ㄥ姞鍏ヤ竴涓獀ersion瀛楁錛岃鍙栨暟鎹椂灝嗙増鏈彿涓鍚岃鍑猴紝涔嬪悗鏇存柊鏁版嵁鏃剁増鏈彿鍔犱竴錛屽鏋滄彁浜ゆ暟鎹椂鐗堟湰鍙峰皬浜庢垨絳変簬鏁版嵁搴撹〃涓殑鐗堟湰鍙鳳紝鍒欒涓烘暟鎹槸榪囨湡鐨勶紝鍚﹀垯緇欎簣鏇存柊銆?/p>

 

鍏跺疄騫墮潪鏄攣錛屾槸涓縐嶅啿紿佹嫻?nbsp; (娌℃湁hibernate涔熷彲浠ヤ嬌鐢ㄧ殑錛岃嚜宸辮鍦ㄦ暟鎹簱涓緩瀛楁鏉ユ帶鍒訛紝浣跨敤hibernate鏂逛究浜涳紝灝佽濂戒簡(jiǎn))

 

鍦?.hm.xml涓?娣誨姞綰㈣壊閮ㄥ垎錛?/p>

                                            

<class

name="com.tao3c.orm.TbBusinessInfo"  table="tb_business_info"  optimistic-lock=”version”>

 

鍏朵腑version鏄痗om.tao3c.orm.TbBusinessInfo綾葷殑灞炴э紝hiernbate浼?xì)鍘痪l存姢鐨勶紝涓嶇敤鑷繁鍘昏

 

 



鑳¢箯 2009-04-06 11:57 鍙戣〃璇勮
]]>
hibernate澶氬澶氭槧灝刜澶勭悊http://www.tkk7.com/lsbwahaha/archive/2009/04/06/264079.html鑳¢箯鑳¢箯Mon, 06 Apr 2009 03:56:00 GMThttp://www.tkk7.com/lsbwahaha/archive/2009/04/06/264079.htmlhttp://www.tkk7.com/lsbwahaha/comments/264079.htmlhttp://www.tkk7.com/lsbwahaha/archive/2009/04/06/264079.html#Feedback0http://www.tkk7.com/lsbwahaha/comments/commentRss/264079.htmlhttp://www.tkk7.com/lsbwahaha/services/trackbacks/264079.html涓錛?/strong>hibernate澶氬澶氭槧灝勶紙鍗曢」錛夛紝鑷姩浜х敓絎笁寮犺〃

User--à Role

user(id,name)    role(id,name)

User綾伙細(xì)

private int  id;   private String name;  private  Set roles;

 

Role綾伙細(xì)

private int id;    private String name;

 

User.hbm.xml涓細(xì)

<set name=”roles” table=”t_user_role”>

       <key column=”userid” />

       <many-to-many class=”com.Role” column=”roleid” />

</set>

 

榪欐牱錛宧ibernate浼?xì)鑷姩漶旂敓涓棿琛╰_user_role(userid,roleid) 騫朵笖鏄鍚堜富閿紝userid涓簍_user鐨勫閿紝roleid涓簍_role鐨勫閿?/p>

 

 

浜岋紟hibernate澶氬澶氱殑瀛樺偍

 

Role r1 = new Role();

r1.setName(“鏁版嵁褰曞叆浜哄憳”);

 

Role r2 = new Role();

r2.setName(“鍟嗗姟涓葷”);

 

Role r3 = new Role();

r3.setName(“澶у尯緇忕悊”);

 

 

User u1 = new User();

u1.setName(“10”);

Set u1Roles = new HashSet();

u1Roles.add(r1);

u1Roles.add(r2);

u1.setRoles(u1Roles);

 

User u2 = new User();

u1.setName(“紲栧効”);

Set u2Roles = new HashSet();

u2Roles.add(r2);

u2Roles.add(r3);

u2.setRoles(u2Roles);

User u3 = new User();

u3.setName(“鏉頒雞”);

Set u3Roles = new HashSet();

u3Roles.add(r1);

u3Roles.add(r2);

u3Roles.add(r3);

u3.setRoles(u3Roles);

 

 

session.save(r1);

session.save(r2);

session.save(r3);

 

session.save(u1);

session.save(u2);

session.save(u3);

 

緇撴潫涔嬪悗錛屽湪絎笁寮犺〃涓篃鏈夋暟鎹?/p>

 

 

 

涓夛紟hibernate澶氬澶氱殑鍔犺澆

 

User user = (User)session.load(User.class,1);

System.out.println(user.getName());

for(Iterator iter = user.getRoles().iterator();iter.hasNext();){

       Role role = (Role)iter.next();

       System.out.println(role.getName());

 

}

 姣忔鍔犺澆閮戒細(xì)鍙戝嚭sql璇彞

 

涓夛紟hibernate澶氬澶氱殑 鍙屽悜鏄犲皠

 

User ß--.-àRole

user(id,name)    role(id,name)

User綾伙細(xì)

private int  id;   private String name;  private Set roles;

 

Role綾伙細(xì)

private int id;    private String name; private Set users;

 

User.hbm.xml涓細(xì)

<set name=”roles” table=”t_user_role”>

       <key column=”userid” />

       <many-to-many class=”com.Role” column=”roleid” />

</set>

 

Role.hbm.xml涓細(xì)

<set name=”roles” table=”t_user_role”>   //榪欓噷鍙互璁劇疆order-by=”userid”,鏍規(guī)嵁userid鎺掑簭

       <key column=”roleid” />

       <many-to-many class=”com.User” column=”userid” />

</set>

 

娉ㄦ剰錛屼笂闈腑闂磋〃鍚嶅瓧鏄竴鏍風(fēng)殑

榪欐牱錛宧ibernate涔熶細(xì)鑷姩浜х敓涓棿琛╰_user_role(userid,roleid) 騫朵笖鏄鍚堜富閿紝userid涓簍_user鐨勫閿紝roleid涓簍_role鐨勫閿?/p>

 



鑳¢箯 2009-04-06 11:56 鍙戣〃璇勮
]]>
hibernate澶氬澶氭槧灝刜澶勭悊http://www.tkk7.com/lsbwahaha/archive/2009/04/06/264080.html鑳¢箯鑳¢箯Mon, 06 Apr 2009 03:56:00 GMThttp://www.tkk7.com/lsbwahaha/archive/2009/04/06/264080.htmlhttp://www.tkk7.com/lsbwahaha/comments/264080.htmlhttp://www.tkk7.com/lsbwahaha/archive/2009/04/06/264080.html#Feedback0http://www.tkk7.com/lsbwahaha/comments/commentRss/264080.htmlhttp://www.tkk7.com/lsbwahaha/services/trackbacks/264080.html涓錛?/strong>hibernate澶氬澶氭槧灝勶紙鍗曢」錛夛紝鑷姩浜х敓絎笁寮犺〃

User--à Role

user(id,name)    role(id,name)

User綾伙細(xì)

private int  id;   private String name;  private  Set roles;

 

Role綾伙細(xì)

private int id;    private String name;

 

User.hbm.xml涓細(xì)

<set name=”roles” table=”t_user_role”>

       <key column=”userid” />

       <many-to-many class=”com.Role” column=”roleid” />

</set>

 

榪欐牱錛宧ibernate浼?xì)鑷姩漶旂敓涓棿琛╰_user_role(userid,roleid) 騫朵笖鏄鍚堜富閿紝userid涓簍_user鐨勫閿紝roleid涓簍_role鐨勫閿?/p>

 

 

浜岋紟hibernate澶氬澶氱殑瀛樺偍

 

Role r1 = new Role();

r1.setName(“鏁版嵁褰曞叆浜哄憳”);

 

Role r2 = new Role();

r2.setName(“鍟嗗姟涓葷”);

 

Role r3 = new Role();

r3.setName(“澶у尯緇忕悊”);

 

 

User u1 = new User();

u1.setName(“10”);

Set u1Roles = new HashSet();

u1Roles.add(r1);

u1Roles.add(r2);

u1.setRoles(u1Roles);

 

User u2 = new User();

u1.setName(“紲栧効”);

Set u2Roles = new HashSet();

u2Roles.add(r2);

u2Roles.add(r3);

u2.setRoles(u2Roles);

User u3 = new User();

u3.setName(“鏉頒雞”);

Set u3Roles = new HashSet();

u3Roles.add(r1);

u3Roles.add(r2);

u3Roles.add(r3);

u3.setRoles(u3Roles);

 

 

session.save(r1);

session.save(r2);

session.save(r3);

 

session.save(u1);

session.save(u2);

session.save(u3);

 

緇撴潫涔嬪悗錛屽湪絎笁寮犺〃涓篃鏈夋暟鎹?/p>

 

 

 

涓夛紟hibernate澶氬澶氱殑鍔犺澆

 

User user = (User)session.load(User.class,1);

System.out.println(user.getName());

for(Iterator iter = user.getRoles().iterator();iter.hasNext();){

       Role role = (Role)iter.next();

       System.out.println(role.getName());

 

}

 姣忔鍔犺澆閮戒細(xì)鍙戝嚭sql璇彞

 

涓夛紟hibernate澶氬澶氱殑 鍙屽悜鏄犲皠

 

User ß--.-àRole

user(id,name)    role(id,name)

User綾伙細(xì)

private int  id;   private String name;  private Set roles;

 

Role綾伙細(xì)

private int id;    private String name; private Set users;

 

User.hbm.xml涓細(xì)

<set name=”roles” table=”t_user_role”>

       <key column=”userid” />

       <many-to-many class=”com.Role” column=”roleid” />

</set>

 

Role.hbm.xml涓細(xì)

<set name=”roles” table=”t_user_role”>   //榪欓噷鍙互璁劇疆order-by=”userid”,鏍規(guī)嵁userid鎺掑簭

       <key column=”roleid” />

       <many-to-many class=”com.User” column=”userid” />

</set>

 

娉ㄦ剰錛屼笂闈腑闂磋〃鍚嶅瓧鏄竴鏍風(fēng)殑

榪欐牱錛宧ibernate涔熶細(xì)鑷姩浜х敓涓棿琛╰_user_role(userid,roleid) 騫朵笖鏄鍚堜富閿紝userid涓簍_user鐨勫閿紝roleid涓簍_role鐨勫閿?/p>

 



鑳¢箯 2009-04-06 11:56 鍙戣〃璇勮
]]>
hibernate閰嶇疆瑕佺偣璇﹁皥http://www.tkk7.com/lsbwahaha/archive/2009/04/06/264076.html鑳¢箯鑳¢箯Mon, 06 Apr 2009 03:53:00 GMThttp://www.tkk7.com/lsbwahaha/archive/2009/04/06/264076.htmlhttp://www.tkk7.com/lsbwahaha/comments/264076.htmlhttp://www.tkk7.com/lsbwahaha/archive/2009/04/06/264076.html#Feedback0http://www.tkk7.com/lsbwahaha/comments/commentRss/264076.htmlhttp://www.tkk7.com/lsbwahaha/services/trackbacks/264076.html    

1.涓ょ閰嶇疆鏂囦歡錛?/p>

A.hibernate.cfg.xml鍜孊.hibernate.properties

 

A涓彲鍚槧灝勬枃浠剁殑閰嶇疆錛岃孊涓環(huán)ard codes鍔犳槧灝勬枃浠躲?/p>

 

A.Configuration config=new Configuration().config();

B. Configuration config=new Configuration();

config.addClass(TUser.class);

 

2.浣犱笉蹇呬竴瀹氱敤hibernate.cfg.xml鎴杊ibernate.properties榪欎袱鏂囦歡鍚嶏紝浣犱篃涓嶄竴瀹氶潪寰楁妸閰嶇疆鏂囦歡鏀懼湪Classes涓嬶紝銆File file=new File("c:\\sample\\myhibernate.xml");銆Configuration config=new Configuration().config(file);

 

3. session.Flush() 寮哄埗鏁版嵁搴撶珛鍗沖悓姝ワ紝褰撶敤浜嬪姟鏃訛紝涓嶅繀鐢╢lush,浜嬪姟鎻愪氦鑷姩璋冪敤flush鍦╯ession鍏抽棴鏃朵篃浼?xì)璋冪敤flush

 

4. Hibernate鎬繪槸浣跨敤瀵硅薄綾誨瀷浣滀負(fù)瀛楁綾誨瀷

 

5. XDoclet涓撻棬寤虹珛浜?jiǎn)hibernate doclet,灝辨槸鍦╦ava浠g爜涓婂姞涓婁竴浜沯ava docTag錛屽悗鏉ュ啀璁Doclet鍒嗘瀽璇ava浠g爜錛岀敓鎴愭槧灝勬枃浠?

 

6.HQL瀛愬彞鏈韓澶у皬鍐欐棤鍏籌紝浣嗘槸鍏朵腑鍑虹幇鐨勭被鍚嶅拰灞炴у悕蹇呴』娉ㄦ剰澶у皬鍐欏尯鍒嗐?/p>

 

7.鍏崇郴錛氥Constrained : 綰︽潫錛岃〃鏄庝富鎺ц〃鐨勪富閿笂鏄惁瀛樺湪涓涓閿紙foreigh key錛夊鍏惰繘琛岀害鏉熴?/p>

 

property-ref:鍏寵仈綾諱腑鐢ㄤ簬涓庝富鎺х被鐩稿叧鑱旂殑灞炴у悕錛岄粯璁や負(fù)鍏寵仈綾葷殑涓婚敭灞炴у悕

 

鍗曞悜涓瀵瑰闇鍦ㄤ竴鏂歸厤緗紝鍙屽悜涓瀵瑰闇鍦ㄥ弻鏂硅繘琛岄厤緗?/p>

 

8.lazy=false:琚姩鏂圭殑璁板綍鐢県ibernate璐熻矗璁板彇錛屼箣鍚庡瓨鏀懼湪涓繪帶鏂規(guī)寚瀹氱殑Collection綾誨瀷灞炴т腑

 

9. java.util.Set鎴杗et.sof.hibernate.collecton.Bag綾誨瀷鐨凜ollection

 

10.閲嶈錛歩nverse:鐢ㄤ簬鏍囪瘑鍙屽悜鍏寵仈涓殑琚姩鏂逛竴绔?/p>

 

inverse=false鐨勪竴鏂癸紙涓繪帶鏂癸級(jí)璐熻矗緇存姢鍏寵仈鍏崇郴.榛樿鍊鹼細(xì)false

 

11.batch-size:閲囩敤寤惰繜鍔犺澆鐗瑰緛鏃訛紝涓嬈¤鍏ョ殑鏁版嵁鏁版槰銆?/p>

 

12.涓瀵瑰閫氳繃涓繪帶鏂規(guī)洿鏂幫紙涓繪帶鏂逛負(fù)涓鏂規(guī)椂錛?/p>

 

user.getAddresses().add(addr);

 

session.save(user);//閫氳繃涓繪帶瀵硅薄綰ц仈鏇存柊

 

13.鍦╫ne-to-many 鍏崇郴涓紝灝唌any 涓鏂硅涓轟富鍔ㄦ柟錛坕nverse=false錛夊皢鏈夊姪鎬ц兘鐨勬敼鍠勩傚湪涓鏂硅緗叧緋繪椂錛宨nverse=true,鍗沖皢涓繪帶鏉冧氦緇欏鏂癸紝銆榪欐牱澶氭柟鍙富鍔ㄤ粠涓鏂硅幏寰梖oreign key,鐒跺悗涓嬈nsert鍗沖彲瀹屽伐銆?/p>

 

addr.setUser(user);//璁劇疆鍏寵仈鐨凾User瀵硅薄

 

user.getAddresses().add(addr);

 

session.save(user);//綰ц仈鏇存柊

 

14.鍙湁璁句負(fù)涓繪帶鏂圭殑涓鏂規(guī)墠鍏沖績(jī)錛堣闂級(jí)瀵規(guī)柟鐨勫睘鎬э紝琚姩鏂規(guī)槸涓嶅叧蹇?jī)瀵规柟鐨勫睘鎬х殑銆?/p>

 

15.one-to-many涓巑any-to-one鑺傜偣鐨勯厤緗睘鎬т笉鍚岋細(xì)

 

涓瀵瑰鍏崇郴澶氫簡(jiǎn)lazy鍜宨nverse涓や釜灞炴у瀵瑰鑺傜偣灞炴э細(xì)

 

column:涓棿鏄犲皠琛ㄤ腑錛屽叧鑱旂洰鏍囪〃鐨勫叧鑱斿瓧孌?/p>

 

class:綾誨悕錛屽叧鑱旂洰鏍囩被

 

outer-join:鏄惁浣跨敤澶栬仈鎺?/p>

 

娉ㄦ剰:access鏄緗睘鎬у肩殑璇誨彇鏂瑰紡銆?/p>

 

column鏄緗叧鑱斿瓧孌點(diǎn)?/p>

 

16.澶氬澶氾紝娉ㄦ剰涓ゆ柟閮借璁劇疆inverse鍜宭azy,cascade鍙兘璁句負(fù)insert-update

 

澶氬澶氬叧緋諱腑錛岀敱浜庡叧鑱斿叧緋繪槸涓ゅ紶琛ㄧ浉浜掑紩鐢紝鍥犳鍦ㄤ繚瀛樺叧緋葷姸鎬佹椂蹇呴』瀵瑰弻鏂瑰悓鏃朵繚瀛樸?/p>

 

group1.getRoles().add(role1);銆role1.getGroups().add(group1);

 

session.save(role1);銆session.save(group1);

 

17.鍏充簬vo鍜宲o銆vo緇忚繃hibernate瀹歸噺澶勭悊錛屽氨鍙樻垚浜?jiǎn)po(璇o鐨勫紩鐢ㄥ皢琚鍣ㄤ繚瀛橈紝騫朵笖鍦╯ession鍏抽棴鏃秄lush,鍥犳po濡傛灉鍐嶄紶鍒板叾瀹冨湴鏂規(guī)敼鍙樹(shù)簡(jiǎn)錛屽氨鍗遍櫓浜?銆vo鍜宲o鐩鎬簰杞崲錛欱eanUtils.copyProperties(anotherUser,user);

 

18.瀵逛簬save鎿嶄綔鑰岃█錛屽鏋滃璞″凡緇忎笌Session鐩稿叧鑱旓紙鍗沖凡緇忚鍔犲叆Session鐨勫疄浣撳鍣ㄤ腑錛夛紝鍒欐棤闇榪涜鍏蜂綋鐨勬搷浣溿傚洜涓轟箣鍚庣殑Session.flush榪囩▼涓紝Hibernate 浼?xì)瀵规瀹炰綋瀹瑰櫒涓殑瀵硅薄杩涜閬嶅巻锛屾煡鎵惧嚭鍙戠敓鍙樺寲鐨勫疄浣撳Q岀敓鎴愬茍鎵ц鐩稿簲鐨剈pdate 璇彞銆?/p>

 

19.濡傛灉鎴戜滑閲囩敤浜?jiǎn)鍤g榪熷姞杞芥満鍒訛紝浣嗗笇鏈涘湪涓浜涙儏鍐典笅錛屽疄鐜伴潪寤惰繜鍔犺澆鏃剁殑鍔熻兘錛屼篃灝辨槸璇達(dá)紝鎴戜滑甯屾湜鍦⊿ession鍏抽棴鍚庯紝渚濈劧鍏佽鎿嶄綔user鐨刟ddresses 灞炴?Hibernate.initialize鏂規(guī)硶鍙互閫氳繃寮哄埗鍔犺澆鍏寵仈瀵硅薄瀹炵幇榪欎竴鍔熻兘錛?榪欎篃姝f槸鎴戜滑涓轟粈涔堝湪緙栧啓POJO鏃訛紝蹇呴』鐢↗DK Collection鎺ュ彛錛堝Set,Map錛? 鑰岄潪鐗瑰畾鐨凧DK Collection瀹炵幇綾伙紙濡侶ashSet銆丠ashMap錛夌敵鏄嶤ollection灞炴х殑 鍘熷洜銆?/p>

 

20.浜嬪姟錛氫粠sessionFactory鑾峰緱session,鍏惰嚜鍔ㄦ彁浜ゅ睘鎬у氨宸茬粡鍏抽棴(AutoCommit=false),姝ゆ椂鑻ユ墽琛屼簡(jiǎn)jdbc鎿嶄綔錛屽鏋滀笉鏄懼紡璋冪敤session.BeginTransaction(),鏄笉浼?xì)鎵ц浜嬪姟鎿嶄綔鐨勩?/p>

 

jdbc transaction:鍩轟簬鍚屼竴涓猻ession(灝辨槸鍚屼竴涓猚onnection)鐨勪簨鍔?

 

jta銆transaction:璺╯ession錛堣法connection錛変簨鍔?

 

瀵逛簬jta浜嬪姟錛屾湁涓夌瀹炵幇鏂規(guī)硶錛?/p>

 

A銆俇serTransaction tx=new InitialContext().lookup("...");

tx.commit();

 

B. 浣跨敤hibernate灝佽鐨勬柟娉曪細(xì)(涓嶆帹鑽?

 

Transaction tx=session.beginTransaction();

tx.commit();

C. 浣跨敤ejb涔媠essionBean鐨勪簨鍔℃妧鎸佹柟娉曪紝浣犲彧瑕佸湪鎶婇渶瑕佸湪鍙戝竷鎻忚堪絎︿腑錛屾妸闇瑕乯ta浜嬪姟鐨勬柟娉曞0鏄庝負(fù)require鍗沖彲

 

21.鎮(zhèn)茶閿侊紝涔愯閿侊細(xì)銆涔愯閿佷竴鑸氳繃version鏉ュ疄鐜幫紝娉ㄦ剰version鑺傜偣蹇呴』鍑虹幇鍦╥d鍚庛?/p>

 

22.Hibernate涓紝鍙互閫氳繃Criteria.setFirstResult鍜孋riteria.setFetchSize鏂規(guī)硶璁懼畾鍒嗛〉鑼冨洿銆?/p>

 

Query鎺ュ彛涓篃鎻愪緵浜?jiǎn)涓庡叾涓鑷寸殑鏂規(guī)硶錛宧ibernate涓昏鍦╠ialect綾諱腑瀹炵幇鍦ㄨ繖涓姛鑳姐?/p>

 

23.cache

 

……

 

net.sf.ehcache.hibernate.Provider銆

 

榪橀渶瀵筫cache鏈韓榪涢厤緗?/p>

 

 

 

涔嬪悗鍦ㄦ槧灝勬枃浠朵腑鎸囧畾鍚勪釜鏄犲皠瀹炰綋鐨刢ache絳栫暐

 

 

....

 

 

....

 

 

***************************************************** Query.list()璺烸uery.iterate()鐨勪笉鍚岋細(xì)瀵逛簬query.list()鎬繪槸閫氳繃涓鏉ql璇彞鑾峰彇鎵鏈夎褰?鐒跺悗灝嗗叾璇誨嚭錛屽~鍏ojo榪斿洖; 浣嗘槸query.iterate()錛屽垯鏄鍏堥氳繃涓鏉elect SQL 鑾峰彇鎵鏈夌鍚堟煡璇㈡潯浠剁殑璁板綍鐨?id錛屽啀瀵硅繖涓猧d 闆嗗悎榪涜寰幆鎿嶄綔錛岄氳繃鍗曠嫭鐨凷elect SQL 鍙栧嚭姣忎釜id 鎵瀵瑰簲鐨勮 褰曪紝涔嬪悗濉叆POJO涓繑鍥炪?/p>

 

涔熷氨鏄錛屽浜巐ist 鎿嶄綔錛岄渶瑕佷竴鏉QL 瀹屾垚銆傝屽浜巌terate 鎿嶄綔錛岄渶瑕乶+1 鏉QL銆傦紝list鏂規(guī)硶灝嗕笉浼?xì)浠嶤ache涓鍙栨暟鎹俰terator鍗翠細(xì)銆?/p>

 

24.ThreadLocal:瀹冧細(xì)涓烘瘡涓嚎紼嬬淮鎶や竴涓鏈夌殑鍙橀噺絀洪棿銆傚疄闄呬笂錛?鍏跺疄鐜板師鐞嗘槸鍦↗VM 涓淮鎶や竴涓狹ap錛岃繖涓狹ap鐨刱ey 灝辨槸褰撳墠鐨勭嚎紼嬪璞★紝鑰寁alue鍒欐槸綰跨▼閫氳繃ThreadLocal.set鏂規(guī)硶淇濆瓨鐨勫璞″疄渚嬨傚綋綰跨▼璋冪敤ThreadLocal.get鏂規(guī)硶鏃訛紝 ThreadLocal浼?xì)鏍规嵁褰撳墠绾拷E嬪璞$殑寮曠敤錛屽彇鍑篗ap涓搴旂殑瀵硅薄榪斿洖銆?/p>

 

榪欐牱錛孴hreadLocal閫氳繃浠ュ悇涓嚎紼嬪璞$殑寮曠敤浣滀負(fù)鍖哄垎錛屼粠鑰屽皢涓嶅悓綰跨▼鐨勫彉閲忛殧紱誨紑鏉ャ?/p>

 

25.Hibernate瀹樻柟寮鍙戞墜鍐屾爣鍑嗙ず渚?

 

public class HibernateUtil { private static SessionFactory sessionFactory;

static { try { // Create the SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();

} catch (HibernateException ex) { throw new RuntimeException( "Configuration problem: " + ex.getMessage(), ex );

} } public static final ThreadLocal session = new ThreadLocal();

public static Session currentSession() throws HibernateException { Session s = (Session) session.get();

// Open a new Session, if this Thread has none yet if (s == null) { s = sessionFactory.openSession();

session.set(s);

} return s;

} public static void closeSession() throws HibernateException { Session s = (Session) session.get();

session.set(null);

if (s != null) s.close();

} }

 

26.閫氳繃filter瀹炵幇session鐨勯噸鐢細(xì)

 

public class PersistenceFilter implements Filter { protected static ThreadLocal hibernateHolder = new ThreadLocal();

public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { hibernateHolder.set(getSession());

try { …… chain.doFilter(request, response);

…… } finally { Session sess = (Session)hibernateHolder.get();

if (sess != null) { hibernateHolder.set(null);

try { sess.close(); } catch (HibernateException ex) { throw new ServletException(ex);

} } } } ……}



鑳¢箯 2009-04-06 11:53 鍙戣〃璇勮
]]>
主站蜘蛛池模板: 免费无码国产在线观国内自拍中文字幕| 亚洲香蕉成人AV网站在线观看| 国产在线播放线91免费 | 在线播放高清国语自产拍免费 | 亚洲国产中文在线二区三区免| 久久精品国产亚洲av四虎| 亚洲综合色视频在线观看| 亚洲av无码成人精品区| 国产免费黄色大片| 四虎永久免费影院| 亚洲免费视频一区二区三区| 成年丰满熟妇午夜免费视频| 1000部羞羞禁止免费观看视频 | 特黄特色的大片观看免费视频| 亚洲成aⅴ人片久青草影院按摩| 亚洲一区二区三区精品视频 | 五月婷婷亚洲综合| 亚洲成AⅤ人影院在线观看 | 免费人成激情视频在线观看冫 | 亚洲s码欧洲m码吹潮| 亚洲成av人无码亚洲成av人| 国产精品亚洲精品| 亚洲国产成人久久综合| 亚洲AV无码国产剧情| 阿v免费在线观看| a级毛片视频免费观看| 久久久久久久久久国产精品免费 | 亚洲一卡2卡3卡4卡乱码 在线| 亚洲另类视频在线观看| 77777亚洲午夜久久多喷| 亚洲日韩AV一区二区三区四区| 亚洲精品无码国产片| 青娱乐在线视频免费观看| 在线视频网址免费播放| 久久黄色免费网站| 97国产免费全部免费观看| 全免费一级毛片在线播放| 青青青国产色视频在线观看国产亚洲欧洲国产综合 | 久久久久久亚洲精品成人| 久久久久亚洲精品天堂| 亚洲综合在线一区二区三区 |