如鵬網 大學生計算機學習社區

          CowNew開源團隊

          http://www.cownew.com 郵件請聯系 about521 at 163.com

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            363 隨筆 :: 2 文章 :: 808 評論 :: 0 Trackbacks

          CowNew開源團隊網站 http://www.cownew.com
          論壇??? http://www.cownew.com/newpeng/
          轉載請注明此版權信息。

          ORM在整個java社區使用越來越廣泛,但是隨著更多的項目使用ORM,很多人也感到了它的不足:慢,甚至慢的讓人無法忍受!可是讓我們從ORM的原理仔細思考一下,就會發現,使用ORM并不會明顯降低運行速度。因為無論什么ORM工具都是根據對象去動態構造SQL語句,執行的,相信無論構造SQL的速度多么慢,那和數據庫操作比起來,幾乎是可以忽略不計的。但是為什么確實又那么慢呢?歸根結底,是對ORM的使用不當造成的。
          1、陋習:過渡依賴ORM的Update和delete。比如,將某個人的年齡加3,很多人就會如下寫:
          PersonInfo p = orm.getPerson(...);
          p.setAge(p.getAge);
          orm.update(p);
          看看,這一來一回就要兩個sql語句,先取數據:select age,id,.... from T_Person,然后再update,update T_Person set age=23....。
          相信沒有ORM,誰也不會去這么寫。直接寫sql:update T_Person set age=age+3 where...這不很好嗎?速度不會快多了嗎?
          又如:刪除年齡為15的人,有的人就敢這么寫:
          PersonInfo persons[] = orm.getPersons("age=15");
          for(int i=0,n=persons.length;i<n;i++)
          {
          ?? orm.delete(persons[i]);
          }

          我真的要瘋了,它真的不懂delete from T_person where age=15嗎??
          根據我個人的經驗如果要發揮ORM的最大作用,同時最大程度的避免其副作用,我建議最好只使用orm的addNew(增加數據)和get***Info(從數據庫中取數據)的功能,而對update,delete則直接寫sql,這樣最好。
          ORM+JDBC,優美和效率的最佳結合點。
          2、認為ORM萬能。在寫一些報表的時候甚至也有人用orm取出數據,然后通過代碼來出報表。相信稍微復雜一點的報表就能把人搞死。所以報表,千萬不能用ORM,直接寫SQL是最好的事情。

          posted on 2006-06-09 01:33 CowNew開源團隊 閱讀(862) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 贵港市| 民乐县| 关岭| 鸡泽县| 馆陶县| 临江市| 东台市| 博野县| 台中市| 亚东县| 仪陇县| 鱼台县| 安庆市| 简阳市| 崇礼县| 塘沽区| 嘉祥县| 上蔡县| 白朗县| 元阳县| 石嘴山市| 淮安市| 夏津县| 仁怀市| 深圳市| 沾益县| 宁明县| 阳新县| 漠河县| 霍林郭勒市| 闵行区| 镶黄旗| 永寿县| 资源县| 前郭尔| 万载县| 东山县| 工布江达县| 十堰市| 揭西县| 前郭尔|