Hibernate Hibernate是壹個開放源代碼的對象關系映射框架,它對JDBC進行了非常輕量級的對象封裝,使得Java程序員可以隨心所欲的使用對象編程思維來操縱數據庫。 Hibernate可以應用在任何使用JDBC的場合,既可以在Java的客戶端程序實用,也可以在Servlet/JSP的Web應用中使用,最具革命意義的是,Hibernate可以在應用EJB的J2EE架構中取代CMP,完成數據持久化的重任。Eclipse平臺下的Hibernate輔助開發工具:Hibernate SynchronizerMiddlegenIDE IBATIS 使用ibatis 提供的ORM機制,對業務邏輯實現人員而言,面對的是純粹的Java對象, 這壹層與通過Hibernate 實現ORM 而言基本壹致,而對於具體的數據操作,Hibernate 會自動生成SQL 語句,而ibatis 則要求開發者編寫具體的SQL 語句。相對Hibernate等 “全自動”ORM機制而言,ibatis 以SQL開發的工作量和數據庫移植性上的讓步,為系統 設計提供了更大的自由空間。作為“全自動”ORM 實現的壹種有益補充,ibatis 的出現顯 得別具意義。
[數據捕快 大數據實驗室提供 ][datacaptor from aosustudio]
推薦解答(2)
壹.***同點:
1.都是O/R mapping框架,直接與數據庫打交道。
2.都提供方言支持不同類型數據庫的訪問,通過xml文件格式將數據庫表與java對象連接起來。
3.都可以交給spring來管理
4.都是開源軟件
二.區別:
hibernate是當前流行的O/R框架,來自於sf.net,現在已成為HBOSS的壹部分。 hibernate相對較復雜,學習周期長。
ibatis/mybatis 是另外壹種優秀的o/r mapping框架,目前屬於apache的壹個子項目了。ibatis上手快,很容易學學習。
三原理:
hibernate對數據結構進行了很好的封裝,可以實現java對象也就是POJO是數據庫表之間的映射,還能根據POJO及SQL自動生成表和執行命令。程序員往往只需定義好了pojo 到數據庫表的映射關系,即可通過hibernate 提供的方法完成持久層操作。程序員甚至不需要對sql 的熟練掌握, hibernate/ojb 會根據制定的存儲邏輯,自動生成對應的sql 並調用jdbc 接口加以執行。
而ibatis 則重點在於pojo 與sql之間的映射關系。ibatis不能讓我們通過POJO生成SQL語句來執行 。具體的sql 需要程序員編寫,然後通過映射配置文件,將sql所需的參數,以及返回的結果字段映射到指定pojo。
四.機制
使用ibatis 提供的orm機制,對業務邏輯實現人員而言,面對的是純粹的java對象。這壹層與通過hibernate 實現orm 而言基本壹致,而對於具體的數據操作,hibernate會自動生成sql 語句,而ibatis 則要求開發者編寫具體的sql 語句。相對hibernate而言,ibatis 以sql開發的工作量和數據庫移植性上的讓步,為系統設計提供了更大的自由空間。
五.系統維護或者二次開發
當系統維護或者二次開發,無法對數據庫結構做到控制和修改,那ibatis的靈活性將比hibernate更適合
六.海量數據
系統數據處理量巨大,性能要求極為苛刻,這往往意味著我們必須通過經過高度優化的sql語句(或存儲過程)才能達到系統性能設計指標。在這種情況下ibatis會有更好的可控性和表現。
七.自動化程度
ibatis需要手寫sql語句,也可以生成壹部分,hibernate則基本上可以自動生成,偶爾會寫壹些hql。同樣的需求,ibatis的工作量比 hibernate要大很多。類似的,如果涉及到數據庫字段的修改,hibernate修改的地方很少,而ibatis要把那些sql mapping的地方壹壹修改。
八.與數據映射關系
ibatis以數據庫字段壹壹對應映射得到的po和hibernte這種對象化映射得到的po是截然不同的,本質區別在於這種po是扁平化的,不像hibernate映射的po是可以表達立體的對象繼承,聚合等等關系的,這將會直接影響到妳的整個軟件系統的設計思路。
九.技術支持
hibernate現在已經是主流o/r mapping框架,從文檔的豐富性,產品的完善性,版本的開發速度都要強於ibatis
十.實現過程查看
1.hibernate配置,進行數據庫連接。
2.POJO與數據庫映射的xml文件介紹
3..得到sessionFactory我們就可以通過會話工廠操作數據庫
4、ibatis配置信息設置
5.POJO與數據庫的建立xml文件定義
6.加載ibatis配置文件,給client初始化
6.通過client操作數據庫
親,記得采納壹下哦
[數據捕快 大數據實驗室提供 ][datacaptor from aosustudio]
推薦解答(3)
都是java的壹種框架,hibernate靠的是hql語言,面向的是object,ibatis靠的是sql語言,更接近數據庫,配置比hibernate靈活,也比hibernate效率高