本篇內(nèi)容主要講解“Hibernate ibatis怎么理解”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Hibernate ibatis怎么理解”吧!
創(chuàng)新互聯(lián)建站是一家企業(yè)級云計算解決方案提供商,超15年IDC數(shù)據(jù)中心運營經(jīng)驗。主營GPU顯卡服務器,站群服務器,移動服務器托管,海外高防服務器,機柜大帶寬,動態(tài)撥號VPS,海外云手機,海外云服務器,海外服務器租用托管等。
使用ibatis需要自己寫SQL時,由于我們的SQL不可能完全符合SQL標準,比起Hibernate產(chǎn)生的SQL來,可移植性差。不過由于我們更改 數(shù)據(jù)庫的可能性較小,對我們來說SQL符合標準以便可以在遷移到不同服務器時代價最小并不是十分必要的。另一方面,Hibernate雖然可以屏蔽很多 數(shù)據(jù)庫間的不同,但是卻很難利用某些數(shù)據(jù)庫的高級特性,比如oracle的分析統(tǒng)計函數(shù)。
Hibernate不適合數(shù)據(jù)庫模式不規(guī)范,約束不完整,需要大量復雜查詢的系統(tǒng),同時Hibernate的學習成本較高,完全掌握Hibernate也較困難,風險較大。
自己寫框架未必比ibatis的好,穩(wěn)定,強大和可擴展。而且自己開發(fā)框架也需要較大的工作量。
如果使用dotnet并且要選一個數(shù)據(jù)層框架,而系統(tǒng)中有相當一部分較復雜的SQL,或數(shù)據(jù)庫設(shè)計不合理,臟數(shù)據(jù)多,對性能和資源要求嚴格,ibatis 是一個比較不錯的選擇。他的那些缺點并不是致命的,而且也是有一些解決方案的。尤其是,當選用了ibatis的dataaccess作為dao框架時,我們可以同時使用Hibernate,ado.net和datamapper(ibatisnet的核心組件),那樣將會使風險降到***,并且整個系統(tǒng)的 框架比較合理。
另外,利用ibatis可以統(tǒng)一編碼風格,節(jié)約開發(fā)成本,大家不會再把精力浪費到分頁 連接池 主鍵生成等地方了,可以集中精力進行業(yè)務組件的編寫。
綜上: 很多時候我們要在是自己開發(fā)框架和選用第三方框架和選用什么樣的框架問題上進行綜合考慮。考慮的標準當然是項目的當前情況和我們希望達到目的的一個平衡。
ibatis只是封裝了數(shù)據(jù)訪問層,替我們做了部分的對象關(guān)系映射。但我們的代價是必須要寫xml配置文件,相對于Hibernate我們還要寫很多 SQL.Hibernate通過工具直接從數(shù)據(jù)庫模式生成實體類和基本的配置文件,而且大部分情況下不需要我們寫SQL,會較大的提升開發(fā)效率。但這些也 有很多的局限性,尤其是對環(huán)境的要求較高(數(shù)據(jù)庫設(shè)計,對象設(shè)計,團隊的協(xié)作等)。
個人感覺ibatis對項目比較有意義的地方在于它小巧靈活,可擴展,封裝了數(shù)據(jù)訪問層(事務,緩存,異常,日志),并提供了dao框架支持。
利用ibatis我們可以做到代碼和SQL的分離,只要SQL能夠解決的問題,ibatis就能幫我們較容易的解決,同時也使我們的項目對某一框架的依賴性變小(因為ibatis是非侵入性的)。這將極大的降低項目風險,減少解決復雜問題的時間,使項目的維護變得簡單。
ibatis對于應用的修改,調(diào)試,擴充和維護將會變得容易自然。修改時,我們主要修改的是代表模型的實體對象,xml配置文件中的SQL,和/或配置文件的resultmap(很多時候是不需要的)。同時,SQL和代碼分離,我們不用在代碼的stringbuffer的append方法之間尋找需要修改的SQL.配置文件中的SQL便利了我們的調(diào)試和對SQL的評審及以后的SQL重用。
利用一些框架在前期一般會拖慢開發(fā)效率。因為我們需要付出學習成本,很多時候,使用框架需要寫很多配置文件,在使用不熟時開發(fā)速度較慢;同時利用框架往往使系統(tǒng)代碼量增大,比如model1和model2模型,開發(fā)效率應該還是model1快,四層的架構(gòu)肯定比兩層的代碼量大。但對于中后期開發(fā)和維護將會極大的提高效率。
利用一些較完全的開發(fā)框架和代碼生成工具,在前期會較大的提高開發(fā)效率,但在后期常常會拖慢進度,并有可能成為以后維護的夢魘。比如torque生成實體類和其對應的SQL,雖大幅提高了效率,但修改負擔較大。
比較理想的開發(fā)方式是使用簡單框架結(jié)合簡單的代碼生成工具。框架提供系統(tǒng)的基礎(chǔ)服務,并規(guī)范開發(fā)。框架一方面提供了開發(fā)中某一方面的開發(fā)基礎(chǔ)支持,比如數(shù)據(jù)訪問層,事務,日志,公用類,異常等。另一方面,也為開發(fā)定義了模式,定義了系統(tǒng)的基本輪廓。同時,通過簡單的代碼生成工具生成部分低級的代碼。比如通過工具從數(shù)據(jù)庫模式生成實體類。這些類生成后我們可以自由修改。
Hibernate是十分強大,比較完善的orm框架,不過這是它的優(yōu)點也是它的缺點。 J2EE系統(tǒng)是否采用Hibernate3,是一個需要認真評估的問題。
要想Hibernate工作的好,數(shù)據(jù)庫的設(shè)計必須好。同時對于復雜的數(shù)據(jù)操作同時需要使用SQL,Hibernate3對于直接使用SQL的支持比Hibernate2要自然,這一點是可以接受的。
Hibernate比較復雜,功能強大而靈活,要用好Hibernate確實不是很簡單,當然spring框架提供了對Hibernate的封裝,使Hibernate的使用變得簡單了點。
可以說ibatis在任何系統(tǒng)里都適用,但未必是***選擇。不過ibatis提供的思路是我們應該仔細考慮的。
到此,相信大家對“Hibernate ibatis怎么理解”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學習!
網(wǎng)站欄目:Hibernateibatis怎么理解
轉(zhuǎn)載注明:http://vcdvsql.cn/article2/gjjcic.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄、搜索引擎優(yōu)化、營銷型網(wǎng)站建設(shè)、網(wǎng)站設(shè)計、網(wǎng)站改版、網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)