Mybatis的優缺點知多少
優點
1. 易於上手和掌握
2. sql寫在xml裏,便於統一管理和優化。
3. 解除sql與程序代碼的耦合。
4. 提供映射標籤,支持對象與數據庫的orm字段關係映射
5. 提供對象關係映射標籤,支持對象關係組建維護
6. 支持xml方式開發,提供xml接口映射文件,編寫動態sql
7.支持註解方式開發,在持久層接口類引入註解
缺點
1. sql工作量很大,尤其是字段多、關聯表多時,更是如此。
2. sql依賴於數據庫,導致數據庫移植性差。
3. 由於xml裏標籤id必須唯一,導致DAO中方法不支持方法重載。
4. 字段映射標籤和對象關係映射標籤僅僅是對映射關係的描述,具體實現仍然依賴於sql。(比如配置了一對多Collection標籤,如果sql裏沒有join子表或查詢子表的話,查詢後返回的對象是不具備對象關係的,即Collection的對象爲null)
5. DAO層過於簡單,對象組裝的工作量較大。
6. 不支持級聯更新、級聯刪除。
7. 編寫動態sql時,不方便調試,尤其邏輯複雜時。
8 提供的寫動態sql的xml標籤功能簡單(連struts都比不上),編寫動態sql仍然受限,且可讀性低。
9. 若不查詢主鍵字段,容易造成查詢出的對象有“覆蓋”現象。
10. 參數的數據類型支持不完善。(如參數爲Date類型時,容易報沒有get、set方法,需在參數上加@param)
11. 多參數時,使用不方便,功能不夠強大。(目前支持的方法有map、對象、註解@param以及默認採用012索引位的方式)
12. 緩存使用不當,容易產生髒數據。
願你就像早晨八九點鐘的太陽,活力十足,永遠年輕。