當前位置:編程學習大全網 - 編程語言 - spring+mybatis的優缺點

spring+mybatis的優缺點

mybatis的優缺點:

優點:

1.?易於上手和掌握。

2.?sql寫在xml裏,便於統壹管理和優化。

3.?解除sql與程序代碼的耦合。

4.?提供映射標簽,支持對象與數據庫的orm字段關系映射

5.?提供對象關系映射標簽,支持對象關系組建維護

6.?提供xml標簽,支持編寫動態sql。

缺點:

1.?sql工作量很大,尤其是字段多、關聯表多時,更是如此。

2.?sql依賴於數據庫,導致數據庫移植性差。

3.?由於xml裏標簽id必須唯壹,導致DAO中方法不支持方法重載。

4.?字段映射標簽和對象關系映射標簽僅僅是對映射關系的描述,具體實現仍然依賴於sql。(比如配置了壹對多Collection標簽,如果sql裏沒有join子表或查詢子表的話,查詢後返回的對象是不具備對象關系的,即Collection的對象為null)

5.?DAO層過於簡單,對象組裝的工作量較大。

6.?不支持級聯更新、級聯刪除。

7.?編寫動態sql時,不方便調試,尤其邏輯復雜時。

8?提供的寫動態sql的xml標簽功能簡單(連struts都比不上),編寫動態sql仍然受限,且可讀性低。

9.?使用不當,容易導致N+1的sql性能問題。

10.?使用不當,關聯查詢時容易產生分頁bug。

11.?若不查詢主鍵字段,容易造成查詢出的對象有“覆蓋”現象。

12.?參數的數據類型支持不完善。(如參數為Date類型時,容易報沒有get、set方法,需在參數上加@param)

13.?多參數時,使用不方便,功能不夠強大。(目前支持的方法有map、對象、註解@param以及默認采用012索引位的方式)

14.?緩存使用不當,容易產生臟數據。

總結:

mybatis的優點其實也是mybatis的缺點,正因為mybatis使用簡單,數據的可靠性、完整性的瓶頸便更多依賴於程序員對sql的使用水平上了。sql寫在xml裏,雖然方便了修改、優化和統壹瀏覽,但可讀性很低,調試也非常困難,也非常受限,無法像jdbc那樣在代碼裏根據邏輯實現復雜動態sql拼接。mybatis簡單看就是提供了字段映射和對象關系映射的jdbc,省去了數據賦值到對象的步驟而已,除此以外並無太多作為,不要把它想象成hibernate那樣強大,簡單小巧易用上手,方便瀏覽修改sql就是它最大的優點了。

mybatis適用於小型且程序員能力較低的項目和人群使用,對於中大型項目來說我並不推薦使用,如果覺得hibernate效率低的話(實際上也是使用不當所致,hibernate是實際上是不適用於擁有高負載的工程項目),還不如直接用spring提供的jdbc簡單框架(Template),同樣支持對象映射。

spring的優缺點:

優點

a.?Spring能有效地組織妳的中間層對象,不管妳是否選擇使用了EJB。如果妳僅僅使用了Struts或其他為J2EE的?API特制的framework,

Spring致力於解決剩下的問題。

b.?Spring能消除在許多工程中常見的對Singleton的過多使用。根據我的經驗,這是壹個很大的問題,它降低了系統的可測試性和面向對

象的程度。

c.?通過壹種在不同應用程序和項目間壹致的方法來處理配置文件,Spring能消除各種各樣自定義格式的屬性文件的需要。曾經對某個類

要尋找的是哪個魔法般的屬性項或系統屬性感到不解,為此不得不去讀Javadoc甚至源編碼?有了Spring,妳僅僅需要看看類的JavaBean屬性

。Inversion?of?Control的使用(在下面討論)幫助完成了這種簡化。

d.?通過把對接口編程而不是對類編程的代價幾乎減少到沒有,Spring能夠促進養成好的編程習慣。

e.?Spring被設計為讓使用它創建的應用盡可能少的依賴於他的APIs。在Spring應用中的大多數業務對象沒有依賴於Spring。

f.?使用Spring構建的應用程序易於單元測試。

g.?Spring能使EJB的使用成為壹個實現選擇,而不是應用架構的必然選擇。妳能選擇用POJOs或local?EJBs來實現業務接口,卻不會影響

調用代碼。

h.?Spring幫助妳解決許多問題而無需使用EJB。Spring能提供壹種EJB的替換物,它們適用於許多web應用。例如,Spring能使用AOP提

供聲明性事務管理而不通過EJB容器,如果妳僅僅需要與單個數據庫打交道,甚至不需要壹個JTA實現。

i.?Spring為數據存取提供了壹個壹致的框架,不論是使用的是JDBC還是O/R?mapping產品(如Hibernate)。

Spring確實使妳能通過最簡單可行的解決辦法來解決妳的問題。而這是有有很大價值的。

缺點:使用人數不多、jsp中要寫很多代碼、控制器過於靈活,缺少壹個公用控制器

以上內容,是我在網絡上找到的,希望對妳有幫助~~

  • 上一篇:程序員是青春飯 40歲後怎麽辦
  • 下一篇:為什麽不要和別人比?
  • copyright 2024編程學習大全網