MyBatis是一個Java的持久層框架,和Hibernate同樣,都是ORM框架。sql
MyBaits的前身是iBatis,能夠將數據庫中記錄映射爲pojo,是開發人員以面向對象編程的思想來操做數據庫。數據庫
MyBatis消除了幾乎全部的JDBC代碼、參數的手動設置、對結果集的檢索,開發人員只須要使用xml進行簡單的配置、映射,就能夠操做數據庫。編程
ORM,Object Relational Mapping 對象關係映射,對象指的是pojo,關係指的是關係型數據庫中的表、記錄。app
經常使用的ORM框架包括MyBatis、Hibernate。框架
Hibernate是一個全表映射框架,開發者只需定義映射關係、pojo,Hibernate會自動生成對應的sql語句、操做數據庫的方法,咱們使用Hibernate提供的方法操做持久層就ok,不須要熟練掌握sql,也不須要編寫大量的代碼,開發效率要高於MyBatis。性能
但Hibernate對多表關聯查詢支持較差,更新操做須要發送整個pojo對象(全部字段),不支持儲存過程,不能經過優化sql來提升性能。優化
Hibernate適合場景不復雜、對性能要求不高的項目。xml
MyBatis是一個半自動映射框架,除了要定義映射關係、pojo,還須要本身寫sql語句,工做量要比HIbernate大。對象
但MyBatis能夠配置動態sql,能夠自定義映射規則,支持存儲過程,能夠經過優化sql來提升性能。blog
對複雜、對性能有要求的項目來講,使用MyBatis更合適。