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

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

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

    goldrain

    金色雨點

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      37 隨筆 :: 2 文章 :: 239 評論 :: 0 Trackbacks
    使用Hibernate+Spring進行后臺開發,數據庫操作dao層代碼大多比較雷同,可以考慮用模板加以實現.
    ?
    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);
    ??}
    }

    以上代碼僅供參考,細節可根據項目做適當改動.

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

    eclipse 3.2.0

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

    評論

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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


    網站導航:
     
    主站蜘蛛池模板: 久久精品电影免费动漫| 男女一边桶一边摸一边脱视频免费| 久久久久久一品道精品免费看| 中文亚洲AV片不卡在线观看| 国产精品美女久久久免费| 亚洲中文字幕久久精品无码喷水| av成人免费电影| 亚洲精品无码成人AAA片| 全黄大全大色全免费大片| 日韩亚洲欧洲在线com91tv| a视频在线免费观看| 国产亚洲人成无码网在线观看| 视频免费在线观看| 亚洲a一级免费视频| 18女人毛片水真多免费| 亚洲自偷自拍另类图片二区| 很黄很黄的网站免费的| 亚洲日本VA午夜在线电影| 四虎国产精品免费久久影院| 一区二区三区免费精品视频| 久久国产亚洲精品麻豆| 四虎1515hh永久久免费| 亚洲av第一网站久章草| 久久亚洲中文字幕精品一区四| 曰批全过程免费视频在线观看无码 | 一级日本高清视频免费观看| 亚洲中文字幕第一页在线| 99蜜桃在线观看免费视频网站| 亚洲国产精品日韩在线| 在线中文高清资源免费观看| 人妻仑刮八A级毛片免费看| 亚洲av片劲爆在线观看| 成人免费毛片视频| 国产免费A∨在线播放| 亚洲经典在线中文字幕| 免费一级一片一毛片| 国产精品区免费视频| 亚洲精华国产精华精华液网站| 国产精品亚洲αv天堂无码| 1000部禁片黄的免费看| 免费无遮挡无遮羞在线看|