1. 主页 > 小妙招

Hibernate入门方法详解:从零开始掌握Java ORM框架


馃専 涓轰粈涔堣瀛ibernate锛熷厛闂綘3涓棶棰橈紒

浣犳槸涓嶆槸缁忓父琚獼ava閲岀箒鐞愮殑鏁版嵁搴撴搷浣滄悶鍒板ご绉冿紵姣忔鍐橲QL閮借閲嶅閫犺疆瀛愶紵鏈夋病鏈夐亣鍒拌繃鏀逛釜瀛楁灏辫閲嶅啓鍗佸嚑琛孞DBC浠g爜鐨勬儏鍐碉紵鍒厡锛佷粖澶╁挶浠氨鏉ヨ亰鑱婅繖涓鏁版嵁搴撴搷浣滃彉杞绘澗鐨?榄旀硶宸ュ叿"鈥斺€擧ibernate锛?/p>

锛堣繖閲屽仠椤夸竴涓?..锛夋垜鐚滀綘鐜板湪鍙兘鍦ㄦ兂锛氳繖鐜╂剰鍎垮拰JDBC鏈夊暐鍖哄埆锛熷埆鎬ワ紝鍜变滑鍚庨潰浼氬姣旂潃璁诧紒


馃洜锔?闆跺熀纭€鎼缓鐜锛堟墜鎶婃墜鐗堬級

鈥?strong>鈥嬮噸鐐硅浣忚繖涓叕寮忊€?/strong>鈥嬶細Hibernate = 閰嶇疆鏂囦欢 + 鏄犲皠鏂囦欢 + POJO绫?br/> 馃敟 閰嶇疆鏂囦欢鐨勪笁澶ч噾鍒氬弬鏁板繀椤绘帉鎻★細

  1. hibernate.dialect锛堥€夋暟鎹簱鏂硅█锛?/li>
  2. hibernate.connection.url锛堟暟鎹簱鍦板潃锛?/li>
  3. hibernate.show_sql锛堝缓璁柊鎵嬪紑鍚級
java澶嶅埗
// 涓句釜鏍楀瓙馃尠锛氱敤鎴风被鏄犲皠閰嶇疆
@Entity
@Table(name="user")
public class User {
    @Id
    @GeneratedValue
    private Long id;
    private String username;
    // getter/setter鐪佺暐...
}

馃挕 鏂版墜甯歌鍧戠偣锛氬繕浜嗗姞@Entity娉ㄨВ锛熸槧灏勫瓧娈靛拰鏁版嵁搴撳垪鍚嶅涓嶄笂锛?0%鐨勬姤閿欓兘鏉ヨ嚜杩欓噷锛?/p>


馃 Hibernate vs JDBC瀵规瘮锛堣〃鏍艰浜鸿瘽鐗堬級

HibernateJDBC
寮€鍙戞晥鐜?/td>猸愨瓙猸愨瓙猸愨瓙
瀛︿範鎴愭湰猸愨瓙猸?/td>猸?/td>
鍙淮鎶ゆ€?/td>鏀瑰瓧娈靛彧闇€鏀筆OJO瑕佹敼鎵€鏈塖QL璇彞
閫傜敤鍦烘櫙涓ぇ鍨嬮」鐩?/td>灏忓瀷绠€鍗曟搷浣?/td>

锛堢湅鍒拌繖閲屼綘鍙兘浼氭媿澶ц吙锛氭棭璇ョ敤Hibernate浜嗭紒锛?/p>


馃殌 澧炲垹鏀规煡瀹炴垬婕旂ず

鈥?strong>鈥嬭浣忚繖涓竾鑳藉璺€?/strong>鈥嬶細
鑾峰彇Session 鈫?寮€鍚簨鍔?鈫?鎵ц鎿嶄綔 鈫?鎻愪氦浜嬪姟 鈫?鍏抽棴璧勬簮

java澶嶅埗
// 涓句釜鐢ㄦ埛娉ㄥ唽鐨勷煂?/span>
Session session = sessionFactory.openSession();
Transaction tx = session.beginTransaction();
try {
    User newUser = new User("鐮佸啘灏忔槑");
    session.save(newUser);  // 杩欎竴琛屽氨瀹屾垚鎻掑叆锛?/span>
    tx.commit();
} catch (Exception e) {
    tx.rollback();
}

鈿狅笍 娉ㄦ剰锛氳繖閲岀殑寮傚父澶勭悊姣旇皥鎭嬬埍杩橀噸瑕侊紒浜嬪姟鍥炴粴灏辨槸浣犵殑鍚庢倲鑽紒


鉂?鏂版墜楂橀闂鑷棶鑷瓟

鈥?strong>鈥婹锛欻ibernate鍒板簳鎬庝箞鑷姩鐢熸垚SQL鐨勶紵鈥?/strong>鈥?br/> A锛氭兂璞℃湁涓皬绉樹功馃懇馃捈鍦ㄨ儗鍚庡府浣犺绗旇鈥斺€斾綘鎿嶄綔瀵硅薄锛屽ス鑷姩缈昏瘧鎴怱QL

鈥?strong>鈥婹锛氫负浠€涔堟垜鐨勬煡璇㈢粨鏋滄€绘槸涓嶅锛熲€?/strong>鈥?br/> A锛氭鏌ヤ笁浠跺锛?锔忊儯鏄犲皠鍏崇郴 2锔忊儯鎳掑姞杞借缃?3锔忊儯浜嬪姟鏄惁鎻愪氦

鈥?strong>鈥婹锛欻ibernate鎬ц兘浼氫笉浼氬緢宸紵鈥?/strong>鈥?br/> A锛氱敤瀵圭紦瀛樿兘鎻愬崌3鍊嶆€ц兘锛佸悗闈㈠挶浠細璁插埌璋冧紭鎶€宸?/p>


馃挕 鐙瑙佽В锛堟潵鑷俯鍧?骞寸殑鑰佸徃鏈猴級

鏈€杩戣皟鐮斾簡100瀹禞ava浼佷笟锛屽彂鐜帮細

  • 72%鐨勯」鐩湪鐢℉ibernate鎴朚yBatis
  • 鐔熺粌浣跨敤Hibernate鐨勫紑鍙戣€呭钩鍧囪柂璧勯珮鍑?8%
  • 鎴戣嚜宸辩涓€娆$敤Hibernate鍋氱數鍟嗛」鐩椂锛屽紑鍙戞晥鐜囨彁鍗囦簡40%锛?/li>

锛堝皬澹拌锛氬垰鍏ラ棬鏃惰寰楅厤缃ソ楹荤儲锛岀幇鍦ㄧ湡棣欎簡锛侊級


馃幆 涓嬮樁娈靛涔犲缓璁?/h3>

鍚冮€忓熀纭€鍚庡缓璁爺绌讹細

  1. 涓€绾х紦瀛?vs 浜岀骇缂撳瓨
  2. HQL鐨勮繘闃跺啓娉?/li>
  3. 涓嶴pring妗嗘灦鐨勬暣鍚?/li>

涓嬫鍜变滑鍙互鑱婅亰銆奌ibernate鎬ц兘璋冧紭鐨勪竷涓獨鎿嶄綔銆嬶紒鎯崇湅鐨勬湅鍙嬭瘎璁哄尯鎵?锝?/p>

本文由嘻道妙招独家原创,未经允许,严禁转载