Hibernate鐨勬绱㈡柟寮廐ibernate鐨勬绱㈡柟寮?
1.瀵艱埅瀵硅薄鍥炬绱㈡柟寮?br />
鏍規嵁宸茬粡鍔犺澆鐨勫璞?瀵艱埅鍒板叾浠栧璞?
2.OID媯绱㈡柟寮?br />
鎸夌収瀵硅薄鐨凮ID鏉ユ绱㈠璞?br />
3.HQL媯绱㈡柟寮?br />
浣跨敤闈㈠悜瀵硅薄鐨凥QL鏌ヨ璇█.
4.QBC媯绱㈡柟寮?br />
浣跨敤QBC API鏉ユ绱㈠璞?榪欑API灝佽浜嗗熀浜庡瓧絎︿覆褰㈠紡鐨勬煡璇㈣鍙?鎻愪緵浜嗘洿鍔犻潰鍚戝璞$殑鎺ュ彛.
瀹冧富瑕佺敱Criteria鎺ュ彛,Criterion鎺ュ彛鍜孍xpression綾葷粍鍚?瀹冩敮鎸佸湪榪愯鏃跺姩鎬佺敓鎴愮殑鏌ヨ璇彞:
浠ヤ笅紼嬪簭浠g爜鐢ㄤ簬媯绱㈠鍚嶄互瀛楃"T"寮澶?騫朵笖騫撮緞涓?1鐨凜ustomer瀵硅薄:
///璋冪敤Session鐨刢reateCriteria()鏂規硶鍒涘緩涓涓狢riteria瀵硅薄
Creteria criteria=session.createCriteria(Customer.class);
//璁劇疆鏌ヨ鏉′歡,Expression綾繪彁渚涗簡涓緋誨垪鐢ㄤ簬璁懼畾鏌ヨ鏉′歡鐨勯潤鎬佹柟娉?榪欎簺闈欐佹柟娉曢兘
榪斿洖Criterion瀹炰緥,姣忎釜Criterion瀹炰緥浠h〃涓涓煡璇㈡潯浠?br />
Criterion criterion1=Expression.like("name","T%");
Criterion criterion2=Expression.eq("age",new Integer(21));
////Criteria鐨刟dd()鏂規硶鐢ㄤ簬鍔犲叆鏌ヨ鏉′歡.
criteria=criteria.add(criterion1);
criteria=criteria.add(criterion2);
/////璋冪敤Criteria鐨刲ist()鏂規硶鎵ц鏌ヨ璇彞,璇ユ柟娉曡繑鍥濴ist綾誨瀷鐨勬煡璇㈢粨鏋?鍦↙ist闆嗗悎涓瓨鏀?br />
浜嗙鍚堟煡璇㈡潯浠剁殑鎸佷箙鍖栧璞?br />
List result=criteria.list();
瀵逛簬浠ヤ笂浠g爜鎵ц鐨凷QL璇彞涓?select * from CUSTOMERS where NAME like"T%" and AGE=21;
Criteria鎺ュ彛鏀寔鏂規硶閾劇紪紼嬮鏍?瀹冪殑add()鏂規硶榪斿洖鑷韓瀹炰緥,鑰屼笉鏄繑鍥瀡oid綾誨瀷
5.鏈湴SQL媯绱㈡柟寮?
6.QBE媯绱㈡柟寮?
瀹冩槸QBC鐨勫瓙鍔熻兘,QBE鍏佽鍏堝垱寤轟竴涓璞℃牱鏉?鐒跺悗媯绱㈠嚭鎵鏈夊拰榪欎釜鏍鋒澘鐩稿悓鐨勫璞?濡備笅:
//鍒涘緩涓涓狢Ustomer鏍鋒澘瀵硅薄
Customer exampleCustomer=new Customer();
exampleCustoemr.setAge(21);
List result=session.createCriteria(Custoemr.class).add(Example.create(exampleCustomer)).list();
鍥犱負QBE鍙敮鎸?="鍜?like"姣旇緝榪愮畻絎?鎵浠ヤ竴鑸噰鐢℉QL媯绱㈡柟寮忔垨鑰匭BC媯绱㈡柟寮?
鍒嗛〉鏌ヨ:
Query鍜孋riteria鎺ュ彛閮芥彁渚涗簡鐢ㄤ簬鍒嗛〉鏄劇ず鏌ヨ緇撴灉鐨勬柟娉?
setFirstResult(int firstResult):璁懼畾浠庡摢涓涓璞″紑濮嬫绱?鍙傛暟firstResult琛ㄧず榪欎釜瀵硅薄鍦ㄦ煡璇㈢粨鏋滀腑鐨勭儲寮曚綅緗?绱㈠紩浣嶇疆鐨勮搗濮嬪間負0,
鍦ㄩ粯璁ゆ儏鍐典笅,Query鍜孋riteria鎺ュ彛浠庢煡璇㈢粨鏋滀腑鐨勭涓涓璞?涔熷氨鏄儲寮曚綅緗負0鐨勫璞″紑濮嬫绱?
setMaxResult(int maxResults):璁懼畾涓嬈℃渶澶氭绱㈠嚭鐨勫璞℃暟鐩?鍦ㄩ粯璁ゆ儏鍐典笅,Query鍜孋riteria鎺ュ彛媯绱㈠嚭鏌ヨ鎺ュ彛涓墍鏈夌殑瀵硅薄
媯鏌ュ崟涓璞?
Query鍜孋riteria鎺ュ彛閮芥彁渚涗簡浠ヤ笅鐢ㄤ簬鎵ц鏌ヨ璇彞騫惰繑鍥炴煡璇㈢粨鏋滅殑鏂規硶:
list()鏂規硶:榪斿洖涓涓狶ist綾誨瀷鐨勬煡璇㈢粨鏋?鍦↙ist闆嗗悎涓瓨鏀句簡鎵鏈夋弧瓚蟲煡璇㈡潯浠剁殑鎸佷箙鍖栧璞?br />
uniqueResult()鏂規硶:榪斿洖鍗曚釜瀵硅薄.
鍦ㄦ煇浜涙儏鍐典笅,濡傛灉鍙笇鏈涙绱㈠嚭涓涓璞?鍙互鍏堣皟鐢≦uery鎴朇riteria鎺ュ彛鐨剆etMaxResult(1)鏂規硶,鎶婃渶澶ф绱㈡暟鐩涓?,鐒跺悗璋冪敤uniqueResult()鏂規硶,
璇ユ柟娉曡繑鍥炰竴涓狾bject綾誨瀷鐨勫璞?
// 閲囩敤HQL媯绱㈡柟寮?br />
Customer customer=(Customer)session.createQuery("from Customer c order by c.name asc").setMaxResults(1).uniqueResult();
//閲囩敤QBC媯绱㈡柟寮?br />
Customer customer=(Customer)session.createCriteria(Customer.class).add(Order.asc("name")).setMaxResults(1).uniqueResult();
1 |
DROP TABLE IF EXISTS `test`.`t_user`; CREATE TABLE `test`.`t_user` ( `id` int(11) NOT NULL auto_increment, `name` varchar(255) default NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=gbk; |
1 |
eclipse\plugins\org.ultimania.middlegenide_1.3.2\resource\template\build-hibernate.xml.vm |
1 |
<property name="gen.xdoclet-tag" value="true"> |
Struts 閲岄潰鐨?
public class User { private String username; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } }
public class UserForm extends FormBean { private User user; public User getUser() { return user; } public void setUser(User user) { this.user = user; } }
閭d箞瀵瑰簲鐨?JSP 欏甸潰閲岀殑 Tag 鍙互鍐欐垚:
<html:text property="user.username" />
浣嗘槸濡傛灉榪欐椂鍊欐湁浜鴻繕鎯崇粰鐢熸垚鐨勮〃鍗曞姞鍏?JavaScript 楠岃瘉鐨勮瘽, 蹇呴』鐢ㄤ笅闈㈢殑鍐欐硶鎵嶈兘閫氳繃:
榪欐槸鍥犱負 Struts 鏍囩鏈鍚庝駭鐢熺殑 HTML 濡備笅鎵紺?
<form onsubmit="return validateForm(this);"> <input name="user.username" /> < SPAN>form>
鐩存帴寮曠敤 鍏冪礌.user.username 鑲畾浼氬嚭閿欑殑. 姝g‘鐨勬柟娉曞弬鑰冧笂涓婇潰鐨勪唬鐮佹鍗沖彲.
鍏跺疄榪欐牱瀛愮殑闆嗘垚鎰熻寰堜笉閿欑殑錛岄櫎浜嗗皯浜哾to鍜岃漿鎹紙鑷沖皯浣犺鐢ㄤ竴涓猚opyProperty鍚э級錛宲ojo瀹炵幇浜嗗簭鍒楀寲錛?/pre>鐢氳嚦鍙互鐩存帴娣卞叆鍒癏ibernate搴曞眰錛岃繖鏍峰瓙灝辯渷緙轟簡浠ュ墠涓鐩磋璁篺ormbean鍜宲o鏄笉鏄悎騫舵垨鑰呭湪鍝釜灞傞潰涓婅繘琛岃漿鎹€?/span>