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

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

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

    goldrain

    金色雨點

      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      37 隨筆 :: 2 文章 :: 239 評論 :: 0 Trackbacks
    使用Hibernate+Spring進(jìn)行后臺開發(fā),數(shù)據(jù)庫操作dao層代碼大多比較雷同,可以考慮用模板加以實現(xiàn).
    ?
    eclipse的模板功能非常強大,可以添加自定義的模板,自動生成dao層的方法代碼,
    做法是:到windows - preferences - java - editor - templates下添加模板,可起名為dao
    ?
    貼出我的項目中的模板代碼
    ?

    ?public Long add${ho}(Jacker${ho} ho){
    ??Date curr = new Date();
    ??ho.setCreatedStamp(curr);
    ??ho.setLastUpdatedStamp(curr);
    ??return? (Long)add(ho);
    ?}
    ?
    ?public Jacker${ho} get${ho}(Long id){
    ??return (Jacker${ho})getHibernateTemplate().get(Jacker${ho}.class,id);
    ?}
    ?
    ?public void update${ho}(Jacker${ho} ho){
    ??ho.setLastUpdatedStamp(new Date());
    ??update(ho);
    ?}
    ?
    ?public void delete${ho}(Jacker${ho} ho){
    ??delete(ho);
    ?}

    ?public void delete${ho}List(List<Jacker${ho}> hos){
    ????? if(hos!=null)
    ??????? for(Jacker${ho} ho : hos){
    ???delete${ho}(ho);
    ??}
    }

    以上代碼僅供參考,細(xì)節(jié)可根據(jù)項目做適當(dāng)改動.

    添加好模板后,怎么用就比較初級了,這里就不多說了.

    eclipse 3.2.0

    posted on 2007-02-27 13:59 goldrain 閱讀(8557) 評論(8)  編輯  收藏

    評論

    # re: 使用eclipse模板生成dao層代碼 2007-02-27 16:15 交口稱贊
    呵呵
    我自己寫了一個eclipse插件

    可以基本上全自動生成PO+DAO+配置文件+自動建表  回復(fù)  更多評論
      

    # re: 使用eclipse模板生成dao層代碼 2007-02-27 17:05 goldrain
    @交口稱贊
    很強啊,我只是盡量使用已有的工具.  回復(fù)  更多評論
      

    # re: 使用eclipse模板生成dao層代碼 2007-02-27 17:17 hucq
    @交口稱贊
    能分享下你的插件嗎  回復(fù)  更多評論
      

    # re: 使用eclipse模板生成dao層代碼 2007-02-27 17:41 Dustin Tang[匿名]
    既然大同小異, 說明代碼中有"重復(fù)"的"壞味道".
    自動生成可不是什么解決之道. 用BaseDAO就可以解決問題. 至于方法名,可以統(tǒng)一為 addEntity deleteEntity...
    有人可能認(rèn)為addEntity不夠表達(dá)特殊的含義, 但是別忘了方法調(diào)用的場景:
    bookDAO.addEntity(Book book)和bookDAO.addBook(Book book)會有區(qū)別嗎?  回復(fù)  更多評論
      

    # re: 使用eclipse模板生成dao層代碼 2007-02-27 21:14 lang
    同意Dustin Tang  回復(fù)  更多評論
      

    # re: 使用eclipse模板生成dao層代碼 2007-02-28 15:35 goldrain
    @Dustin Tang[匿名]
    不完全同意你的觀點,addEntity放到BaseDao中可以,但針對不同的PO,還是需要寫出單獨的dao方法的,所謂大同小易,不同的entity的持久化處理總有細(xì)微的差別的,比如字段唯一性校驗,字段的缺省值設(shè)置,再比如有的entity刪除要附帶刪除子記錄等等,在我的項目中這些都可以放到dao代碼中做的,各個entity各不相同,否則的話都籠統(tǒng)的用BaseDao解決,Dao層豈不是沒有存在的必要了  回復(fù)  更多評論
      

    # re: 使用eclipse模板生成dao層代碼 2007-02-28 17:36 Dustin Tang[匿名]
    @goldrain
    不同的PO請看JDK5.0的New Feature:Generics.
    至于特殊的操作請用Override.

    唯一性校驗都可以放到BaseDAO里面去, 刪除子記錄也不算特殊操作(如果你用的是Hibernate的話).

    很多DAO層的確是不需要的, 如果你的邏輯不是太復(fù)雜的話.

    總之,你的自動生成沒有存在的必要, 可以自動生成就代表一定程度的重復(fù).而且這種重復(fù)是可以消除的.  回復(fù)  更多評論
      

    # re: 使用eclipse模板生成dao層代碼 2007-02-28 20:44 goldrain
    @Dustin Tang[匿名]

    我舉的例子只是想說明不同的PO數(shù)據(jù)庫操作總有差別
    至于這些差別,還有很多,比如:刪除記錄,有的需要記錄歷史表
    有的數(shù)據(jù)不重要自然不需要;
    再如,有時添加一條記錄,可能其編號字段是固定格式的序列號,自然有的記錄不需要這種編號;
    有的表需要記錄創(chuàng)建時間,更新時間,有的則沒有必要記錄;
    還有我上面說過的對字段值為null時的缺省值設(shè)定;
    等等
    如果不充分利用dao層來加以區(qū)分這些PO,只能說你的業(yè)務(wù)還不夠復(fù)雜而已

    另外,我對你說的一些解決方法也挺有興趣,能說說具體怎么做么,有沒有連接或代碼供參考
      回復(fù)  更多評論
      


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


    網(wǎng)站導(dǎo)航:
    博客園   IT新聞   Chat2DB   C++博客   博問  
     
    主站蜘蛛池模板: 国产一区二区三区免费观看在线| 久久久国产亚洲精品| 亚洲综合成人网在线观看| 韩国二级毛片免费播放| 3344免费播放观看视频| 亚洲狠狠综合久久| www.91亚洲| 免费爱爱的视频太爽了| 国产四虎免费精品视频| 久久精品私人影院免费看| 人人鲁免费播放视频人人香蕉| 亚洲综合无码精品一区二区三区| 亚洲成a人片77777群色| 在线视频免费观看www动漫| 免费观看亚洲人成网站| 亚洲国产中文在线视频| 亚洲ⅴ国产v天堂a无码二区| 久久久久亚洲精品天堂久久久久久| 永久免费av无码网站yy| 一级毛片免费毛片毛片| 国产综合激情在线亚洲第一页| 亚洲毛片网址在线观看中文字幕| 亚洲色大成网站www尤物| 亚洲高清偷拍一区二区三区| 韩国欧洲一级毛片免费 | 欧美在线看片A免费观看| 国产亚洲视频在线观看| 亚洲国产精品嫩草影院| 在线观看日本亚洲一区| wwwxxx亚洲| 亚洲精品伊人久久久久| 亚洲国产成人久久77| 亚洲妓女综合网99| 亚洲人成电影网站| 亚洲午夜电影在线观看高清 | 国产精品亚洲精品久久精品 | 亚洲精品无码不卡| 亚洲av无码乱码国产精品| 亚洲国产成人高清在线观看| 久久亚洲精品成人777大小说| 免费看又爽又黄禁片视频1000|