常言笑的家

          Spring, Hibernate, Struts, Ajax, RoR

          DAO層指南

          1.概述

             SpringSide的DAO層兩個特點:

             1.DAO層與Business層合并,且省略DAO接口,用cglib方式實現AOP事務控制。

             2.基于范型的強基類,普通DAO類只要用聲明所要管理的Entity類型即擁有完整的CRUD操作。

             結果就是,普通的Manager類只有一個文件,數行代碼。

             同時,當邏輯比較復雜,Manager類比較龐大時,可以內部重構拆分為Dao與Manager,但這個重構行為是內部的,不造成影響的。因為其他類調用的始終是Manager。

          2. HibernateGenericDao

             SpringSide 在Spring HibernateDaoSupport基礎上封裝的DAO,功能如下:

             1.應用范型,使得find(), get() 這些函數不再返回Object,不再需要強制類型轉換。

             2.提供各種finder的簡便函數
                應用了JDK5可變參數的hsql查詢函數:List find(String hql, Object... s) 

                簡單查詢的簡化函數:findBy(Class entityClass,String name,Object ) ,findUniqueBy(Class entityClass,String name, Object ),findByLike(Class entityClass,String name,Object ) 

             3.分頁函數:Page pagedQuery(Criteria criteria, int pageNo, int pageSize) /Page pagedQuery(String hql, int pageNo, int pageSize, Object... args) 。

             4.判別對象屬性在數據庫中唯一的函數:isNotUnique(entityClass, Object entity, String names)。

          3. HibernateEntityDao

              所有UserManager, ProductManager之類只管理一類對象的Manager類的基類,只需要在類定義處聲明Entity類型即可

          								public class BookManager extends HibernateEntityDao<Book> {}

          4. IBatisGenericDao

             SpringSide 在Spring SqlMapClientDaoSupport基礎上封裝的DAO,功能如下:

             1.應用范型,使得find(), get() 這些函數不再返回Object,不再需要強制類型轉換。

             2.提供各種finder的簡便函數
                應用了JDK5可變參數的hsql查詢函數:List find(String hql, Object... s) 

                簡單查詢的簡化函數:findBy(Class entityClass,String name,Object ) ,findUniqueBy(Class entityClass,String name, Object ),findByLike(Class entityClass,String name,Object ) 

             3.分頁函數:Page pagedQuery(Criteria criteria, int pageNo, int pageSize) /Page pagedQuery(String hql, int pageNo, int pageSize, Object... args) 。

              4.由于IBatis本身的特性,因此有少數方法的使用和HiberGenericDAO不太一樣,如save傳入的必須是一個指定操作方式的map(參看helloworld下面的UserManagerIBatisTest)

          5. IBatisEntityDao

              所有UserManager, ProductManager之類只管理一類對象的Manager類的基類,只需要在類定義處聲明Entity類型即可

          								public class BookManager extends IBatisEntityDao<Book> {}

          posted on 2006-12-16 22:42 常言笑 閱讀(817) 評論(0)  編輯  收藏 所屬分類: JAVA/J2EE

          My Links

          Blog Stats

          常用鏈接

          留言簿(5)

          隨筆分類

          隨筆檔案

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 上蔡县| 齐齐哈尔市| 内乡县| 和硕县| 镇巴县| 永康市| 成都市| 织金县| 平昌县| 上虞市| 南和县| 久治县| 丰宁| 渝中区| 咸宁市| 白玉县| 武汉市| 达拉特旗| 疏勒县| 湘乡市| 安国市| 新郑市| 正定县| 田东县| 凌源市| 来凤县| 商洛市| 新沂市| 石泉县| 大连市| 宣恩县| 峨眉山市| 土默特左旗| 云浮市| 屯留县| 鄂尔多斯市| 安化县| 远安县| 六安市| 睢宁县| 道真|