ibatis優缺點總結

2021-08-30 22:29:33 字數 3411 閱讀 9911

ibatis優缺點總結

[code]

1.優點

簡單:易於學習,易於使用,通過文件和源**,可以比較完全的掌握它的設計思路和實現。

實用:提供了資料對映功能,提供了對底層資料訪問的封裝(例如ado.net),提供了dao框架,可以使我們更容易的開發和配置我們的dao層。

靈活:通過sql基本上可以實現我們不使用資料訪問框架可以實現的所有功能,或許更多。

功能完整:

增強系統的可維護性:

通過提供dal 層,將業務邏輯和資料訪問邏輯分離,使系統的設計更清晰,更易維護,更易單元測試。sql和**的分離,提高了可維護性。

2.缺點

滯後性:

還沒有明確對.net2.0的支援。最新版本在2.0下編譯可以,但有些單元測試不能通過。

不成熟,工程實踐較少:

ibatisnet 在實際專案中的使用較少。 只是理論上可行.

半orm,工具支援較少:

需要我們自己寫sql,並且.net下還未發現可以自動生成業務層類和配置檔案的工具,這點和nhibernate不一樣,nhibernate會為我們的資料庫直接產生sql,並有一些輔助工具。因此使用 ibatis比nhibernate要多做一些工作。

3.可行性

沒有最好的框架,只有最適合的框架。 存在的便是合理的,它存在就說明有它存在的道理。但它未必為我們存在。所以選擇乙個框架最主要的是看它對你有沒有意義,意義有多大,是不是比其他框架帶給你的好處要多。沒有絕對的優點也沒有絕對的缺點,重要的是看在什麼情況下討論。

上面說了部分的ibatis的優點和部分缺點。這些優點從理論上證明ibatis對任何資料持久層都合適,但未必是最好的選擇。下面對上面的優缺點分別從兩方面討論。

簡單:我們都喜歡簡單,簡單意味著學習成本低,使用中出錯的可能性低。同時,簡單的東西一般來說功能不夠強大。反過來,複雜的東西學習成本高,用起來不方便,並且團隊沒有很強的技術實力,一般不要使用。

實用:解決了專案中需要解決的問題,這是任何實際工程中採用的框架和工具都應具有的性質,否則就不要拿到實際專案中來。

靈活:靈活有兩層意思,一種是簡單易擴充套件,另一種是功能強大提供了很多選項。ibatis屬於前者,hibernate屬於後者。兩者各有優缺點。

功能完整:

ibatis的功能完整也是相對的,比我們自己開發的框架應該完整,但對比其他框架肯定也有一些解決不了的問題。

增強系統的可維護性:

利用ibatis可以做到sql和**分離,可以設計出乙個清晰的資料訪問層(dal)。但專案架構是否科學合理,是否以維護,關鍵不在ibatis,因為它只是乙個資料層框架。但是我們也不得不清楚,要想發揮ibatis的優勢,我們需要做一些額外工作,比如最好設計dao介面,需要將業務層實體和對實體的訪問放在不同的工程中,同時需要維護xml配置檔案。

滯後性:

ibatis組現在還沒有提到要支援.net2.0,很多人在.net2.0下使用ibatis都出現了問題。所以如果要使用.net2.0開發,ibatis不是乙個好選擇,還需要等待。

不成熟:

開源的東西很難說成熟,但一般比我們自己寫的框架要成熟。由於我們可以拿到他的源**,所以關鍵在於我們能否駕馭它。

半orm,工具支援少:

這注定了ibatis不能從本質上提公升開發效率,我們需要自己寫sql,寫實體類,寫配置檔案。但這也是它優越的地方,它沒有為我們做的他多,所以我們就有更多的施展空間。而且它非常適合那些並不能完全控制資料庫的系統和需要利用資料庫本身提供的高階特性的統計查詢系統的開發。

使用ibatis需要自己寫sql,由於我們的sql不可能完全符合sql標準,比起nhibernate產生的sql來,可移植性差。不過由於我們更改資料庫的可能性較小,對我們來說sql符合標準以便可以在遷移到不同伺服器時代價最小並不是十分必要的。另一方面,nhibernate雖然可以遮蔽很多資料庫間的不同,但是卻很難利用某些資料庫的高階特性,比如oracle的分析統計函式。

nhibernate不適合資料庫模式不規範,約束不完整,需要大量複雜查詢的系統,同時nhibernate的學習成本較高,完全掌握 nhibernate也較困難,風險較大。

自己寫框架未必比ibatis的好,穩定,強大和可擴充套件。而且自己開發框架也需要較大的工作量。

另外,利用ibatis可以統一編碼風格,節約開發成本,大家不會再把精力浪費到分頁 連線池 主鍵生成等地方了,可以集中精力進行業務元件的編寫。

綜上: 很多時候我們要在是自己開發框架和選用第三方框架和選用什麼樣的框架問題上進行綜合考慮。考慮的標準當然是專案的當前情況和我們希望達到目的的乙個平衡。

ibatis只是封裝了資料訪問層,替我們做了部分的物件關係對映。但我們的代價是必須要寫xml配置檔案,相對於hibernate我們還要寫很多 sql。hibernate通過工具直接從資料庫模式生成實體類和基本的配置檔案,而且大部分情況下不需要我們寫sql,會較大的提公升開發效率。但這些也有很多的侷限性,尤其是對環境的要求較高(資料庫設計,物件設計,團隊的協作等)。

個人感覺ibatis對專案比較有意義的地方在於它小巧靈活,可擴充套件,封裝了資料訪問層(事務,快取,異常,日誌),並提供了dao框架支援。

利用ibatis我們可以做到**和sql的分離,只要sql能夠解決的問題,ibatis就能幫我們較容易的解決,同時也使我們的專案對某一框架的依賴性變小(因為ibatis是非侵入性的)。這將極大的降低專案風險,減少解決複雜問題的時間,使專案的維護變得簡單。

利用一些框架在前期一般會拖慢開發效率。因為我們需要付出學習成本,很多時候,使用框架需要寫很多配置檔案,在使用不熟時開發速度較慢;同時利用框架往往使系統**量增大,比如model1和model2模型,開發效率應該還是model1快,四層的架構肯定比兩層的**量大。 但對於中後期開發和維護將會極大的提高效率。

利用一些較完全的開發框架和**生成工具,在前期會較大的提高開發效率,但在後期常常會拖慢進度,並有可能成為以後維護的夢魘。比如torque生成實體類和其對應的sql,雖大幅提高了效率,但修改負擔較大。

比較理想的開發方式是使用簡單框架結合簡單的**生成工具。框架提供系統的基礎服務,並規範開發。框架一方面提供了開發中某一方面的開發基礎支援,比如資料訪問層,事務,日誌,公用類,異常等。另一方面,也為開發定義了模式,定義了系統的基本輪廓。同時,通過簡單的**生成工具生成部分低階的**。比如通過工具從資料庫模式生成實體類。這些類生成後我們可以自由修改。

hibernate是十分強大,比較完善的orm框架,不過這是它的優點也是它的缺點。 j2ee系統是否採用hibernate3,是乙個需要認真評估的問題。

要想hibernate工作的好,資料庫的設計必須好。同時對於複雜的資料操作同時需要使用sql,hibernate3對於直接使用sql的支援比 hibernate2要自然,這一點是可以接受的。

hibernate比較複雜,功能強大而靈活,要用好hibernate確實不是很簡單,當然spring框架提供了對hibernate的封裝,使 hibernate的使用變得簡單了點。

可以說ibatis在任何系統裡都適用,但未必是最好選擇。不過ibatis提供的思路是我們應該仔細考慮的。

[/code]

IBATIS的優缺點

color darkred 優點 color 與jdbc比較 1.減少了大約61 的 量 2.簡單 3.架構級效能增強 4.sql語句與程式 分離 5.簡化專案中的分工 6.增強了移植性 資料庫的可移植性 color green 缺點 color 1.sql需要自己寫 個人觀點 ibatis現在用的...

RDLC優缺點總結

1 報表元件不豐富 如checkbox barcode等元件均沒有 2 不支援終端使用者自定義報 式。如果不同客戶對報 式需求千差萬別,就最好不要選擇rdlc 3 不能在每一頁顯示明細資料的標題 除非費力的採用一些特殊方法 4 若要在報表標頭顯示公司logo,且logo來自資料庫,則顯示起來很麻煩,...

redis優缺點總結

優點 1 讀寫效能優異 2 支援資料持久化,支援aof和rdb兩種持久化方式 3 支援主從複製,主機會自動將資料同步到從機,可以進行讀寫分離。4 資料結構豐富 除了支援string型別的value外還支援string hash set sortedset list等資料結構。缺點 1 redis不具...