iBATIS的內存消耗

iBATIS和Hibernate不一樣,iBATIS是一個半自動化的O/R Mapping框架組件,所有的數據庫操作都需要手動編寫SQL語句。相應的,它們的內存消耗也是不一樣的。

 

比如更新用戶的操作,在Hibernate和iBATIS中寫法不同,如下所示:
 Hibernate方式:
 public void updateUser(DemoUser userPojo) {
  DemoUser userPo = findUserByPK(userPojo.getId());
  DataUtils.copySimpleObject(userPojo, userPo, false);
  super.update(userPo);
 }

 iBATIS方式: 
 public void updateUser(DemoUser userPojo) {
  super.getSqlMapClientTemplate().update("updateUser", userPojo);  
 }
 
在Hibernate中,存在實體的概念,調用get/load方法後,實體變爲受管狀態,任何對此對象的變更都將自動反饋到數據庫中。對於樣本中的代碼來說,存在userPojo和userPo兩個對象,相當於造成了兩倍的內存消耗。

在iBATIS中,可以直接通過框架調用相關SQL語句,由iBATIS執行。對於樣本中的代碼來說,只存在userPojo一個對象,沒有額外的內存消耗。

 

發佈了60 篇原創文章 · 獲贊 16 · 訪問量 27萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章