<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    每日一得

    不求多得,只求一得 about java,hibernate,spring,design,database,Ror,ruby,快速開發(fā)
    最近關心的內容:SSH,seam,flex,敏捷,TDD
    本站的官方站點是:顛覆軟件

      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      220 隨筆 :: 9 文章 :: 421 評論 :: 0 Trackbacks

    key word : hibernate,dao

    一。簡化hibernate
    首先hibernate是一個優(yōu)秀的ORM工具(此話鑒定為廢話:))
    其次,按照20/80的規(guī)律,有80%的問題不需要那20%學習起來比較麻煩的東西。

    很多人在用hibernate的時候一定把關系作為精華來學習,比如一對多,多對一,以及多對多,認為只有熟練運用這個才是對hibernate的真正掌握。
    說實話,這個想法從技術的角度講有點道理,問題是很多人對這些始終是一頭霧水,反正不要好看,我現(xiàn)在仍然是一頭霧水,今天我終于給自己
    解放了出來,我回頭去看自己的項目,發(fā)現(xiàn)N多的時候100%的不要關系(在 hibernate中)也不會出人命,而且效果很好。

    現(xiàn)在,每個mapping文件中沒有了set,list,map,我相信一定有N多人說我這個不符合OO什么的,不過大家反過來想,在我的項目組中會有一個明顯
    的好處就是我將問題簡化了,
    大家都會做,比如Org與User的關系,1:N的關系,我不用考慮這個,直接手工去維護,dao.save(org);user.setOrgId("11");dao.save(user);

    有一段時間我依次問各個項目組,你們的hibernate中用到了關聯(lián)操作了么,回答清一色的“NO”,看來大家都在無意識的回避這個陷阱,呵呵,
    很合吾意。

    二.簡化dao

    可能是受到appfuse的影響,一個service就有一個dao,現(xiàn)在從實際的角度來看仍然覺得沒有太大的必要,當然,如果你是類似測試驅動的想法
    那么可能另當別論。現(xiàn)在我更喜歡一個通用的dao全部搞定,確實舒服。

    service中的操作全部調用通用dao(getObjects(),saveObject(),updateObject(),removeObject())

    public BeanValue saveItem(RequestMap rMap) {
            BeanValue value 
    = null;
            
    try {
                log.info(
    "=====begin to save alexItem object");
                value 
    = new BeanValue();
                AlexItem alexItem 
    = (AlexItem) BeanUtil.convertObject(AlexItem.class, rMap.getMap());
                dao.saveObject(alexItem);
                log.info(
    "=====end to save alexItem object");
                value.addRequestMap(
    "admin",alexItem);
                value.setForword(
    "success");
            }
     catch (BaseException e) {
               value.addErrorMap(
    "errorName",e);
               value.setForword(
    "error");
            }

            
    return value;
        }

     


    愿意聽聽各位在項目中的做法。

    posted on 2007-05-13 16:41 Alex 閱讀(5679) 評論(13)  編輯  收藏 所屬分類: javaHibernate

    評論

    # re: 簡單就是美 -- 簡化hibernate,簡化dao 2007-05-13 17:25 快譯站
    是的,寫代碼要膽大心細,敢于創(chuàng)新,呵呵,頂一個

    www.doodle8.cn 涂鴉基地,跟蹤最新的 web2.0 資源  回復  更多評論
      

    # re: 簡單就是美 -- 簡化hibernate,簡化dao 2007-05-13 18:53 魚腸劍
    這個不好吧.維護時是不出人命.但會要人命啊.現(xiàn)在的工具都很智能了.也不用人為的去維護這個關聯(lián).把數(shù)據設計好.用工具直接生成代碼.而且在用這個類的時候也是比不用這些關聯(lián)要方便.  回復  更多評論
      

    # re: 簡單就是美 -- 簡化hibernate,簡化dao 2007-05-13 20:16 阿歡
    我剛從學校畢業(yè)到一家公司,公司就是這么做的,我并不習慣,認為把關系建好,一切都讓工具自動生成不是更好,而且維護起來一目了然,做刪除操作的時候,需要動哪幾個表也會很清楚,而現(xiàn)在根本就看不出來關系,特別是在數(shù)據庫復雜的時候。而我提出自己的想法時,他們總會說實踐證明他們的選擇是明智的,利大于弊,而我的意見只能成為保留意見了。  回復  更多評論
      

    # re: 簡單就是美 -- 簡化hibernate,簡化dao 2007-05-13 20:23 errorufn
    一直都在用通用的DAO啊,沒有什么實現(xiàn)的問題  回復  更多評論
      

    # re: 簡單就是美 -- 簡化hibernate,簡化dao 2007-05-13 21:40 雨奏
    @Alex
    請問你的通用DAO是怎么寫的呢?
    Hibernate提出了一種泛型DAO的寫法,參見http://www.hibernate.org/328.html  回復  更多評論
      

    # re: 簡單就是美 -- 簡化hibernate,簡化dao 2007-05-13 22:30 Alex
    to 阿歡:
    事實上正是如此,不用關系看起來比較丑陋,也不怎么有效率,但是好處就是不會有什么問題,也就是比較簡單。但是用關系問題可能會出現(xiàn),當然肯定和用的人的掌握的水準有關系,我經歷過的幾個比較大的項目都有這樣的問題,最后都老老實實的用最簡單但是安全的方式來作。

    我相信hibernate是個好東西,但是還是有點難度和學習曲線的,特別是在項目中我們要綜合考慮。

      回復  更多評論
      

    # re: 簡單就是美 -- 簡化hibernate,簡化dao 2007-05-13 22:41 Alex
    to 雨奏 :
    范型是個好東西,不過不怕你笑話,作了這么多項目還沒有用過一次范型,其實那個東西我個人覺得也沒有什么特別有用的地方 ,對于我們的項目來說很實際,jdk只支持1.3,所以還是保守點吧,我個人的觀點是用最簡單的方式解決最通用的問題。題外話,大家注意到沒有,比較大的一些軟件公司他們的技術選型都偏保守,你看oracle的產品所使用的jdk版本,比一般的慢多了,現(xiàn)在1.3的還在大量使用,更別提1.5的了 。  回復  更多評論
      

    # re: 簡單就是美 -- 簡化hibernate,簡化dao 2007-05-13 22:43 Alex
    to 魚腸劍
    用了關系可能會出現(xiàn)性能的問題,但是不用關系基本不會出現(xiàn)性能的問題,這個觀點你覺得有可能么 ?呵呵  回復  更多評論
      

    # re: 簡單就是美 -- 簡化hibernate,簡化dao 2007-05-14 16:18 lizongbo
    從來不用關系.

    比如要把 Threads表切成 Threads200703, Threads200704這樣的日志多表的時候,就體會到表沒有關聯(lián)的好處了.

     

      回復  更多評論
      

    # re: 簡單就是美 -- 簡化hibernate,簡化dao[未登錄] 2007-05-14 17:43 errorfun
    我就是用范型實現(xiàn)的啊,在05年時做的一個項目時就用上了,當時JDK1.5好像才剛出沒多久。一直沒發(fā)現(xiàn)什么問題  回復  更多評論
      

    # re: 簡單就是美 -- 簡化hibernate,簡化dao 2007-05-23 09:45 我心依舊
    恩,如果公司沒有硬性的要求.我也跟你的想法一樣.能簡化的當然簡化.  回復  更多評論
      

    # re: 簡單就是美 -- 簡化hibernate,簡化dao 2007-09-28 01:35 Danny Teng
    Hibernate is ORM which means that Object-relationship mapping. so two parts should be the core of hibernate.
    1. Object. whatever you use DAO or not.
    2. relationship. the relationship between DB structure and objects,

    I don't think yours is smart and simple.   回復  更多評論
      

    # re: 簡單就是美 -- 簡化hibernate,簡化dao 2008-07-03 07:23 faust
    不用DAO,弱化DAO層的存在,個人覺得是有道理的

    在J2EE 5.0中,EM的存在本身也直接弱化了DAO,從側面證明DAO可以弱化

    對于開發(fā)來說,維護Service和Action是直接面向業(yè)務的,DAO的存在,更多是面向技術和開發(fā)重用,現(xiàn)在的情況看來,在DAO層進行深入分析設計,合理構架的很少,必要性也相對較小,所以,考慮還是使用通用DAO的思路

    關于關系的使用,在Hibernate里面是否應該重點使用各種關系,對于較大型的項目,參與人水平良莠不齊時,使用關系風險很高,不如直接使用HQL形成邏輯上的聯(lián)系,手工保障其同步,更容易接收和實現(xiàn)


    由于考慮向下兼容,個人傾向于整體保障JDK1.4,重點保障1.3,這樣框架的適應力更強

      回復  更多評論
      

    主站蜘蛛池模板: 亚洲国产中文在线视频| 日本红怡院亚洲红怡院最新 | 最近免费中文字幕大全高清大全1| 亚洲中文字幕无码久久2017| 国产精品内射视频免费| 亚洲熟妇无码乱子AV电影| 中国性猛交xxxxx免费看| 亚洲综合一区二区国产精品| 在线观看免费中文视频| 丁香婷婷亚洲六月综合色| 在线精品免费视频无码的| 人妻无码中文字幕免费视频蜜桃| 丁香五月亚洲综合深深爱| 久久精品成人免费看| 亚洲影视一区二区| 日本免费中文字幕在线看| 又硬又粗又长又爽免费看| 亚洲av女电影网| 动漫黄网站免费永久在线观看| 亚洲欧美成人一区二区三区 | 亚洲人成网77777色在线播放| 日本高清免费观看| 亚洲免费黄色网址| 免费一看一级毛片人| 久久国产免费观看精品| 亚洲 暴爽 AV人人爽日日碰| 免费va人成视频网站全| a毛片免费全部播放完整成| 亚洲三级在线视频| 亚洲午夜精品一级在线播放放| 久久久久久一品道精品免费看| 亚洲中文字幕一二三四区| 亚洲午夜精品第一区二区8050| 曰批视频免费40分钟试看天天| MM1313亚洲精品无码久久| 久久九九亚洲精品| 国产麻豆剧传媒精品国产免费| 在线看片免费人成视频播| 亚洲精品日韩一区二区小说| 亚洲第一AAAAA片| 国产免费黄色大片|