mybatis簡介(一)
阿新 • • 發佈:2017-10-01
實現 配置 簡單的 缺點 還需 pojo 有效 數據庫數據 更新
JDBC、Hibernate、Mybatis區別
1.JDBC
java程序都是通過JDBC連接數據庫的,從而實現通過SQL對數據庫編程。JDBC實際就是一系列規範,但是它只定義了接口規範,而具體的實現交由各個數據庫廠商去實現。因為每個數據庫都有其特性,這些是java規範沒有辦法確定的,所以JDBC就是一種典型的橋接模式。
缺點:
(1)工作量大,需要先連接,然後再處理事物與數據類型,還需要操作Connection對象,Statement對象與ResultSet對象,並關閉他們。
(2)要對JDBC編程可能產生的異常進行捕獲並正確關閉資源。
因為他的復雜,ORM模型出現了。
2.ORM模型(對象關系映射)
所有的ORM模式都是對JDBC的封裝,只是封裝的強度不一樣。
主要解決數據庫數據和POJO對象(j簡單的JAVA對象)的相互映射。
3.Hibernate
hibernate通過xml映射文件(註解)直接操作數據庫,全表映射
優勢:配置了映射文件與數據庫連接文件後,就可以通過session操作。
提供了級聯、映射、緩存。
缺點:
(1)全表映射的不便,更新時需要發送所有的字段
(2)無法根據不同的條件組裝不同的SQL
(3)對多表關聯和復雜SQL查詢支持較差
(4)不能有效的支持存儲過程
(5)HQL性能較差
4.mybatis
(1)半自動映射,需要匹配SQL、POJO與映射關系,hibernate不需要提供SQL
(2)可以配置動態SQL、優化SQL
(3)自動映射,SQL列名與POJO的屬性名一致
5.怎樣選取
hibernate:場景不太復雜
mybatis:需要靈活的。可優化、易維護。
mybatis簡介(一)