1. 兩者最大的區別 針對簡單邏輯,都有對應的代碼生成工具,可以生成簡單基本的dao層方法; 針對高級查詢,mybatis要手動編寫sql語句和resultMap,而hibernate有良好的映射機制;
2. 開發難度對比 hibernate > mybatis
3. 日志統計 hibernate有自己的日志統計功能,而mybatis需要借助log4j來記錄日志。
4. 數據庫擴展比較 hibernate > mybatis
5. 緩存機制比較,因為hibernate對查詢對象有良好的管理機制,用戶無需關心sql,所以使用二級緩存如果出現臟數據,系統會報錯。而mybatis,如果不能獲取最新數據,應該避免緩存的使用,臟數據的出現會給系統的正常運行帶來很大的隱患。
6. 如何選擇mybatis需要編寫sql和映射規則,工作量大于hibernate; mybatis支持的工具也有限,不能像hibernate那樣有許多插件可以幫助生成映射代碼和關聯關系; 對于性能要求不太苛刻的系統,比如管理系統、ERP等推薦hibernate; 對于性能要求高、響應快、靈活的系統,比如電商系統,推薦使用mybatis;