1. 程式人生 > >JDBC、JDBCTemplate、MyBatis、Hiberante 比較與分析

JDBC、JDBCTemplate、MyBatis、Hiberante 比較與分析

JDBC (Java Data Base Connection,java資料庫連線)

     JDBC(Java Data Base Connection,java資料庫連線)是一種用於執行SQL語句的Java API,可以為多種關係資料庫提供統一訪問,它由一組用Java語言編寫的類和介面組成.JDBC提供了一種基準,據此可以構建更高階的工具和介面,使資料庫開發人員能夠編寫資料庫應用程式

優點:執行期:快捷、高效 缺點:編輯器:程式碼量大、繁瑣異常處理、不支援資料庫跨平臺

JDBCTemplate

        JdbcTemplate針對資料查詢提供了多個過載的模板方法,你可以根據需要選用不同的模板方法.如果你的查詢很簡單,僅僅是傳入相應SQL或者相關引數,然後取得一個單一的結果,那麼你可以選擇如下一組便利的模板方法

  • 優點:執行期:高效、內嵌Spring框架中、支援基於AOP的宣告式事務
  • 缺點:必須於Spring框架結合在一起使用、不支援資料庫跨平臺、預設沒有快取

MyBatis

MyBatis的前身就是iBatis,iBatis本是apache的一個開源專案,2010年這個專案由apahce sofeware foundation 遷移到了google code,並且改名

總體來說 MyBatis 主要完成兩件事情

  1. 根據JDBC 規範建立與資料庫的連線
  2. 通過Annotaion/XML+JAVA反射技術,實現 Java 物件與關係資料庫之間相互轉化

MyBatis優缺點如下:

  • 優點: 高效、支援動態、複雜的SQL構建, 支援與Spring整合和AOP事務、結果集做了輕量級Mapper封裝、支援快取
  • 缺點:不支援資料庫跨平臺, 還是需要自己寫SQL語句

Hibernate

        Hibernate是一個開放原始碼的物件關係對映框架,它對JDBC進行了非常輕量級的物件封裝,使得Java程式設計師可以隨心所欲的使用物件程式設計思維來操縱資料庫. Hibernate可以應用在任何使用JDBC的場合,既可以在Java的客戶端程式使用,也可以在Servlet/JSP的Web應用中使用

         Hibernate的核心類和介面一共有6個, 分別為:Session、SessionFactory、Transaction、Query、Criteria和Configuration這6個核心類和介面在任何開發中都會用到。通過這些介面,不僅可以對持久化物件進行存取,還能夠進行事務控制

       Criteria是一種比hql更面向物件的查詢方式。Criteria 可使用 Criterion 和 Projection 設定查詢條件.可以設定FetchMode(聯合查詢抓取的模式)設定排序方式,Criteria 還可以設定 FlushModel(沖刷 Session 的方式)和LockMode

1 Criteria crit = sess.createCriteria(Cat.class);
2 crit.setMaxResults(50);
3 List cats = crit.list();