ORM框架眾多(Hibernate、iBatis、TopLink、JDO、JPA…),初學者常誤以為「用了ORM就能偷懶」。事實相反:好框架是給專家準備的,急功近利反而適得其反。本文梳理原理、基本用法與核心編程原則。
核心任務:JavaBean屬性 ↔ 資料表字段自動映射。
查詢時:字段值自動填充對象屬性
寫入時:屬性值自動綁定SQL參數
實體User(id, name, email, address)中address低頻使用。ORM僅查詢前三字段,調用getAddress()時觸發二次查詢。
實現機制:ORM生成實體子類,覆寫getter/setter,攔截訪問實現延遲加載與髒檢查。
| 維度 | 動態增強 | 靜態增強 |
|---|---|---|
| 代表框架 | Hibernate (CGLIB) | JDO (增強器) |
| 時機 | 類加載時動態生成子類 | 編譯後額外執行增強命令 |
| 開發體驗 | 零感知,熱部署友好 | 需Ant/Maven額外任務,破壞快速編譯測試循環 |
| 單元測試 | 直接運行 | 需先增強才能測試 |
| 推薦等級 | ⭐⭐⭐⭐⭐ | ❌ 首輪淘汰 |
鐵律:凡採用靜態生成持久化類的ORM,第一時間直接排除。靜態增強極大拖累開發效率與測試反饋速度,違背現代敏捷工程原則。
本文整理自CSDN Java專家博客:
https://blog.csdn.net/asklxf/archive/2009/09/14/4552486.aspx