但這些ORM框架也是有它的問題的,那就是對於複雜的SQL查詢、多表的聯合查詢實現起來很麻煩,甚至某些業務方面用Hibernate沒法實現。舉個例子:假若有2張幾乎相同的表(在實際的項目中這樣的狀況是存在的),如今須要把這2張表的數據所有查詢出來在頁面顯示,使用Hibernate可能會這樣操做,首先各執行一次findAll,而後在Service中循環,再存到一個List中,最後在頁面顯示。這樣是能實現,可是很麻煩,那麼簡單的方法是什麼呢?使用SQL語句中的union all 關鍵字,一個SQL語句就能實現,因此在這種狀況下使用Hibernate就不是很合適了。面對這樣的需求,再次舉起 Hibernate 大刀,卻發現刀鋒再也不銳利,甚至沒法使用,奈何?恍惚之際,只好再摸出JDBC 準備拼死一搏,但JDBC也很麻煩,對於返回的ResultSet也須要處理。這時若是有一種框架即能寫SQL語句,又不須要處理返回結果(結果自動映射成對象)的框架就行了,這時iBatis這種「半自動化的」ORM框架就顯得很重要了。程序員
相對Hibernate等自動化的ORM框架,iBatis的着力點是POJO與數據庫表之間的映射,並不會自動的生成SQL語句,也就是說對於須要程序員本身寫SQL語句,可是對於傳遞的參數和返回的結果iBatis會自動映射成POJO類,這樣程序員就只需在配置文件中寫SQL語句便可,不需操心返回結果的事。這樣就帶來了很大的便利。數據庫
ibatis本是apahce的一個開源項目,2010年這個項目由apahce sofeware foundation 遷移到了google code,而且更名爲mybatis。目前最新版本是MyBatis3.0.3。apache
如今主流的ORM映射框架有Hibernate、Apache OJB;這些基於Java的持久層框架都提供了全自動的對象–關係映射機制,能很好的實現從對象到關係數據的持久化操做。幾乎不須要寫任何的SQL語句(根據配置好的映射關係文件自動生成對應的 SQL 並調用 JDBC 接口加以執行),以面向對象的形式就能實現對數據庫的操做。給咱們的編程帶來了很大的好處,不須要再接觸底層的SQL語句,同時也避免了在書寫SQL語句時帶來的諸多問題。編程
但這些ORM框架也是有它的問題的,那就是對於複雜的SQL查詢、多表的聯合查詢實現起來很麻煩,甚至某些業務方面用Hibernate沒法實現。舉個例子:假若有2張幾乎相同的表(在實際的項目中這樣的狀況是存在的),如今須要把這2張表的數據所有查詢出來在頁面顯示,使用Hibernate可能會這樣操做,首先各執行一次findAll,而後在Service中循環,再存到一個List中,最後在頁面顯示。這樣是能實現,可是很麻煩,那麼簡單的方法是什麼呢?使用SQL語句中的union all 關鍵字,一個SQL語句就能實現,因此在這種狀況下使用Hibernate就不是很合適了。面對這樣的需求,再次舉起 Hibernate 大刀,卻發現刀鋒再也不銳利,甚至沒法使用,奈何?恍惚之際,只好再摸出JDBC 準備拼死一搏,但JDBC也很麻煩,對於返回的ResultSet也須要處理。這時若是有一種框架即能寫SQL語句,又不須要處理返回結果(結果自動映射成對象)的框架就行了,這時iBatis這種「半自動化的」ORM框架就顯得很重要了。mybatis
相對Hibernate等自動化的ORM框架,iBatis的着力點是POJO與數據庫表之間的映射,並不會自動的生成SQL語句,也就是說對於須要程序員本身寫SQL語句,可是對於傳遞的參數和返回的結果iBatis會自動映射成POJO類,這樣程序員就只需在配置文件中寫SQL語句便可,不需操心返回結果的事。這樣就帶來了很大的便利。框架
ibatis本是apahce的一個開源項目,2010年這個項目由apahce sofeware foundation 遷移到了google code,而且更名爲mybatis。目前最新版本是MyBatis3.0.3。google
如今主流的ORM映射框架有Hibernate、Apache OJB;這些基於Java的持久層框架都提供了全自動的對象–關係映射機制,能很好的實現從對象到關係數據的持久化操做。幾乎不須要寫任何的SQL語句(根據配置好的映射關係文件自動生成對應的 SQL 並調用 JDBC 接口加以執行),以面向對象的形式就能實現對數據庫的操做。給咱們的編程帶來了很大的好處,不須要再接觸底層的SQL語句,同時也避免了在書寫SQL語句時帶來的諸多問題。spa
但這些ORM框架也是有它的問題的,那就是對於複雜的SQL查詢、多表的聯合查詢實現起來很麻煩,甚至某些業務方面用Hibernate沒法實現。舉個例子:假若有2張幾乎相同的表(在實際的項目中這樣的狀況是存在的),如今須要把這2張表的數據所有查詢出來在頁面顯示,使用Hibernate可能會這樣操做,首先各執行一次findAll,而後在Service中循環,再存到一個List中,最後在頁面顯示。這樣是能實現,可是很麻煩,那麼簡單的方法是什麼呢?使用SQL語句中的union all 關鍵字,一個SQL語句就能實現,因此在這種狀況下使用Hibernate就不是很合適了。面對這樣的需求,再次舉起 Hibernate 大刀,卻發現刀鋒再也不銳利,甚至沒法使用,奈何?恍惚之際,只好再摸出JDBC 準備拼死一搏,但JDBC也很麻煩,對於返回的ResultSet也須要處理。這時若是有一種框架即能寫SQL語句,又不須要處理返回結果(結果自動映射成對象)的框架就行了,這時iBatis這種「半自動化的」ORM框架就顯得很重要了。code
相對Hibernate等自動化的ORM框架,iBatis的着力點是POJO與數據庫表之間的映射,並不會自動的生成SQL語句,也就是說對於須要程序員本身寫SQL語句,可是對於傳遞的參數和返回的結果iBatis會自動映射成POJO類,這樣程序員就只需在配置文件中寫SQL語句便可,不需操心返回結果的事。這樣就帶來了很大的便利。對象
ibatis本是apahce的一個開源項目,2010年這個項目由apahce sofeware foundation 遷移到了google code,而且更名爲mybatis。目前最新版本是MyBatis3.0.3。