锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
Hibernate 鏄竴涓潰鍚?/span> Java 鐜鐨勫璞?/span> / 鍏崇郴鏁版嵁鏄犲皠宸ュ叿錛屾敞鎰忥紝榪欐槸涓縐嶆妧鏈伐鍏楓?/span>
ORM 錛?/span> object relational mapping 錛?/span> 榪欎釜鏈琛ㄧず涓縐嶆妧鏈紝鐢ㄦ潵鎶婂璞℃ā鍨嬭〃紺虹殑瀵硅薄鏄犲皠鍒板熀浜?/span> SQL 鐨勫叧緋繪ā鍨嬫暟鎹粨鏋勪腑鍘匯?/span>
浠ヤ笂鐨勮繖浜涙蹇墊х殑涓滆タ錛岀劧鎴戞劅瑙夊拰 .NET Framework 2.0 涓殑寮虹被鍨嬫暟鎹泦鐨勪綔鐢ㄥ樊涓嶅錛屼絾鍚爺絀惰繃鐨勪漢璇達紝瑕佹瘮 Microsoft 鐨勯偅涓ソ寰楀錛?/span> Microsoft 鐨勫己綾誨瀷鏁版嵁闆嗘垜鐢ㄨ繃錛屾劅瑙夌埥錛屾棦鐒舵湁璇?/span> Hibernate 鏇村ソ錛岄偅宸茬粡鏇存槸榪囩樉錛屾垜蹇冮噷鐥掔棐鐨勫憖銆傜戶緇傘傘?/span>
涔︿腑鏈夎繖鏍蜂竴鍙モ滃浜庝互鏁版嵁涓轟腑蹇冪殑紼嬪簭鏉ヨ錛屼粬浠線寰鍙湪鏁版嵁搴撲腑浣跨敤瀛樺偍榪囩▼鏉ュ疄鐜板晢涓氶昏緫錛?/span> Hibernate 鍙兘涓嶆槸鏈濂界殑瑙e喅鏂規銆傗濊繖涓槸涓瀹氬暒錛?/span> Hibernate 鏄ˉ姊侊紝鍙堜笉鏄竾閲戞補錛屽綋鐒舵槸鍦ㄦ暟鎹簱涓洿鎺ョ敤瀛樺偍榪囩▼澶勭悊鍟嗕笟閫昏緫鏄渶濂界殑鍟︺傛垜鍋氳繃錛岀洿鎺ュ湪瀛樺偍榪囩▼涓悶瀹氫竴鍒囦笢瑗匡紝浼犱竴涓弬鏁拌繃鍘伙紝鐒跺悗鎵鏈夌殑榪愮畻閮藉湪 SQL Server 2000 鐨勫瓨鍌ㄨ繃紼嬩腑瀹屾垚錛岄偅鍙竴涓埥錛屾瘮鎶婃暟鎹鍒扮▼搴忛噷錛岀劧鍚庣敤 Java 澶勭悊錛屽啀鎶婃暟鎹紶鍥炲幓瑕佸揩寰楀錛屼絾鏄湪 SQL Server 2000 閲岀洿鎺ョ敤瀛樺偍榪囩▼鏉ュ畬鎴愯繖鏍風殑宸ヤ綔錛岄毦搴﹁繕鏄笉灝忕殑錛岃皟璇曞氨鏄渶澶х殑闅劇偣錛屽弽姝f垜鏄病鏁存槑鐧芥湁鍟ュ姙娉曞彲浠ヨ皟璇曠殑錛屾垜灝辯敤鏈鍘熷銆佹渶淇濋潬錛屾嵁璇存槸涔熸槸鏈夋晥鐨勮皟璇曟柟娉?/span> print 鏉ュ畬鎴愩傚搱鍝堛傚鏅曠殑鍚э紒緇х畫鐪嬨傘傘?/span>
鐜板湪鐪嬪埌浜嗕竴涓?b style="mso-bidi-font-weight: normal">鎸佷箙鍖栧疄浣撶被鈥濊繖涓被鏄鍚?/span> JavaBean 鐨勭紪鍐欒姹傘傚茍涓旇緇欏畠涓涓敮涓鐨勬爣璇嗙錛岃繖鏄負浜嗘垜浠嬌鐢?/span> Hibernate 鎻愪緵鐨勬墍鏈夌壒鎬с傚ぇ澶氭暟紼嬪簭錛岀壒鍒槸 web 紼嬪簭錛岄兘闇瑕侀氳繃鏍囪瘑絎︽潵鍖哄垎瀵硅薄銆備絾錛岄氬父鎴戜滑涓嶄細鐩存帴鎿嶄綔瀵硅薄鐨勬爣璇嗙錛屾墍浠ヤ粬鐨?/span> setter 鏂規硶鐨勮闂駭鍒槸 private 銆?/span>
Hibernate 闇瑕佺煡閬撴庢牱鍘誨姞杞斤紙 load 錛夊拰瀛樺偍錛?/span> store 錛夋寔涔呭寲綾葷殑瀵硅薄錛?b style="mso-bidi-font-weight: normal">鏄犲皠鏂囦歡錛屽畠灝辨槸鍛婅瘔 Hibernate 錛屽簲璇ヨ闂暟鎹簱閲岄潰鐨勫摢涓〃錛屽凡緇忓簲璇ヤ嬌鐢ㄨ〃閲岄潰鍝簺瀛楁銆?/span>
Hibernate 涓嶄細浠?/span> web 鍔犺澆 DTD 鏂囦歡錛屼絾瀹冧細棣栧厛鍦ㄥ簲鐢ㄧ▼搴忕殑 classpath 涓煡鎵俱?/span> DTD 鏂囦歡鍖呭惈鍦?/span> hibernate3.jar 閲岋紝鍚屾椂鍦?/span> Hibernate 鍙戝竷鍖呯殑 src/ 鐩綍涓嬨?/span>
鏄犲皠鏂囦歡鐨勯暱鐩革細
Event.hbm.xml
<hibernate-mapping>
聽聽聽聽 <classname="events.Event" table="Events">
聽聽聽聽聽聽聽聽聽聽聽 <idname="id" column="eventID">
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 <generatorclass="native"/>
聽聽聽聽聽聽聽聽聽聽聽 </id>
聽聽聽聽聽聽聽聽聽聽聽 <propertyname="date" type="timestamp" column="eventDate"/>
聽聽聽聽聽聽聽聽聽聽聽 <propertyname="title" column="eventTitle"/>
聽聽聽聽 </class>
</hibernate-mapping>
璇存槑錛?/span>
class 琛ㄧず鎸佷箙鍖栫被錛?/span>
id 琛ㄧず鍞竴鏍囪瘑錛?/span>
property 琛ㄧず綾葷殑灞炴у瓧孌碉紱
name 鏄寔涔呭寲綾誨悕錛?/span>
table 鏄暟鎹〃鍚嶏紱
column 鏄暟鎹瓧孌靛悕錛?/span>
generator 鏄敮涓鏍囪瘑鐨勭敓鎴愭柟寮忥紱
type 鏄槧灝勭殑鏁版嵁綾誨瀷銆?/span>
Hibernate
閰嶇疆鏂囦歡鐨勯暱鐩革細
hibernate.cfg.xml
<!-- by MyEclipse Hibernate tool integration. -->
<hibernate-configuration>
聽聽聽 <session-factory>
聽聽聽聽聽聽聽 <!-- properties -->
聽聽聽聽聽聽聽 <propertyname="connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
聽聽聽聽聽聽聽 <propertyname="connection.url">jdbc:oracle:thin:@localhost:1521:test</property>
聽聽聽聽聽聽聽 <propertyname="connection.username">system</property>
聽聽聽聽聽聽聽聽聽聽聽 聽<propertyname="connection.password">manager</property>
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽 <propertyname="dialect">net.sf.hibernate.dialect.OracleDialect</property>
聽聽聽聽聽聽聽 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽 <!-- mapping files -->
聽聽聽聽聽聽聽 <mappingresource="events/Event.hbm.xml"/>
聽聽
聽</session-factory>
</hibernate-configuration>
璇存槑錛?/span>
Session-factory 錛氱壒瀹氭暟鎹簱鍏ㄥ眬宸ュ巶
connection.driver_class 錛氶┍鍔ㄧ被
connection.url 錛氳繛鎺ヨ礬寰?/span>
connection.username 錛氱敤鎴峰悕
connection.password 錛氱敤鎴峰瘑鐮?/span>
mapping resource 錛氭寔涔呭寲綾誨姞鍏ユ槧灝勬枃浠?/span>
鐢?/span> ant 鍒涘緩 build.xml
鎴戠悊瑙d粬灝辨槸綆$悊鏂囦歡浣嶇疆鐨勶紝灝辨槸鎷瘋礉錛屼負緙栬瘧榪愯鍋氬噯澶囥?/span>
SessionFactory 鏄竴涓嚎紼嬪畨鍏ㄧ殑鍏ㄥ眬瀵硅薄錛屽彧闇瑕佽瀹炰緥鍖栦竴嬈★紝涓涓?/span> Session 浠h〃涓涓崟綰跨▼鐨勫崟鍏冩搷浣溿?/span>
榪欐椂鍙堟潵浜嗕竴涓緟鍔╃被 HibernateUtil 錛岃礋璐e惎鍔?/span> Hibernate 鍜屾洿濂界殑鎿嶄綔 SessionFactory 銆?/span>
鏈鍚庨厤緗竴涓棩蹇楃郴緇燂紝 Log4j 鎴?/span> JDK 1.4 閮藉彲浠ラ夋嫨銆?/span>
鐪嬪埌浜嗕竴縐嶇紪紼嬫ā鍨嬶細綰跨▼緇戝畾錛?/span> thread-bound 錛?/span>
Session 鍦ㄧ涓嬈¤浣跨敤錛屾垨絎竴嬈¤皟鐢?/span> getCurrentSession() 鐨勬椂鍊欙紝鍏剁敓鍛藉懆鏈熷氨寮濮嬩簡錛岀劧鍚庡畠琚?/span> Hibernate 緇戝畾鍒板綋鍓嶇嚎紼嬨傚綋浜嬪姟榪愯緇撴潫鐨勬椂鍊欙紝涓嶇鏄彁浜ゃ佸洖婊氾紝 Hibernate 閮戒細鎶?/span> Session 浠庡綋鍓嶇嚎紼嬪墺紱伙紝騫朵笖鍏抽棴瀹冦?/span>