首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Hibernate Annotations 實戰(二):XML vs Annotations 效能與優缺點對決

     編輯:Java 相關知識

延續前文,討論 hbm.xml 與 Annotations 優缺點及效能比較,助您選擇適合專案的映射策略。

XML 映射檔優缺點

優點

  • 修改底層配置無需改動/重編譯代碼(如換資料庫只改 Hibernate.cfg.xml)。

缺點

  • 描述符多、不易記憶,需深入研讀 DTD。
  • 無自動驗證,靠人工檢查。
  • 讀取解析 XML 消耗時間,導致啟動慢、不利測試維護。
  • 大型系統大量 XML 難管理。
  • 運行期保留 XML 佔額外記憶體。
  • O/R Mapping 時需在 Java 與 XML 間切換,增加工作量。

前兩點現代 IDE 可緩解,但對初學者仍是門檻。

Annotations 優點

  • 描述符減少:元數據即 Java 代碼,省略型別、關係描述。
  • 編譯期驗證:錯誤註解編譯即報錯。
  • 元數據在代碼中,免額外檔案維護。
  • 編譯為 bytecode,記憶體少、讀取快、利測試維護。

效能實測比較

測試環境:AMD Athlon 2000+、784MB RAM、三星 SP0812N 硬碟。移除 hibernate.hbm2ddl.auto=update。測試程式碼相同,僅映射方式不同。各測試執行 3 次取中間值。

讀取 1 次

指標AnnotationsXML說明
Init time2444 ms2431 ms初始化幾乎相同
Last time62 ms85 msAnnotations 較快
Total time2506 ms2516 msXML 略慢

讀取 100 次

指標AnnotationsXML說明
Init time2437 ms2422 ms
Last time438 ms484 ms有時間差
Total time2875 ms2906 msXML 總體慢

插入 100 次

指標AnnotationsXML說明
Init time2453 ms2469 ms
Last time469 ms656 ms有時間差
Total time2922 ms3125 msXML 總體慢

結論

初始化幾乎相同,資料操作上 Annotations 持續領先數十毫秒。在計算機領域這差距顯著。若映射檔建立後極少變動,Annotations 在開發效率、維護性、效能上全面優勝。唯映射頻繁變動(如欄位長度常調整)時,XML 仍有優勢。請根據專案特性正確選擇。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved