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

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

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

    Dict.CN 在線詞典, 英語學習, 在線翻譯

    都市淘沙者

    荔枝FM Everyone can be host

    統計

    留言簿(23)

    積分與排名

    優秀學習網站

    友情連接

    閱讀排行榜

    評論排行榜

    簡化開發-base類(泛型)

    本文章主要講了兩個技巧,一是在Dao層中基本操作的復用,和Spring配置中的一些代碼復用。

     

    簡明的說一下類的作用:

     

    BaseDao(接口類):

    實體中共有的增刪改查操作的接口

     

    BaseHibernateDao(實現類):繼承HibernateDaoSupport,實現BaseDao接口

    實現BaseDao類中的基本操作。

     

    UserDao(接口類):繼承BaseDao類

    實體中除了基本操作的額外操作,用于擴充功能。

     

    UserHibernateDao(實現類):繼承BaseHibernateDao類,實現UserDao接口

    實現UserDao類的操作。

     

     

    從上面的分析可以看出來,UserDao類是包含有全部的底層操作的接口,而UserHibernateDao類是實現了UserDao

    類的全部操作。實現了base類后,實際上是簡化了實體通用的操作,只寫一次就行了。。

     

    在ssh2 結構中,可以利用spring 對UserService 類進行注入UserDao類即可。如Spring的配置文件: 

        <bean id="daoTemplate" abstract="true">
    <property name="sessionFactory" ref="sessionFactory"></property>
    </bean>
    <bean id="userDao" class="dao.hibernate.UserHibernateDao" parent="daoTemplate"/>
    <bean id="userService" class="service.imp.UserService">
    <property name="userDao" ref="userDao"/>
    <bean id="***Dao" class="dao.hibernate.***HibernateDao" parent="daoTemplate"/>
    <bean id="***Service" class="service.imp.UserService">
    <property name="***Dao" ref="***Dao"/>

    從這個配置文件上又有個 daoTemplate 的bean ,這個bean 是一個抽象類,注入了sessionFactory,如果其他bean類繼承它的話,就可以不用在為它注入sessionFactory了,,這個也是一個技巧,有點像Base類,功能都是實現代碼的復用。。。

     

    下面是上面一些類的演示代碼:

    BaseDao

    import java.io.Serializable;
    import java.util.List;
    public interface BaseDao<T,ID extends Serializable> {
    public void save(T entity);
    public void delete(T entity);
    public void deleteById(Class<T> entityClass,ID id);
    public void update(T entity);
    public T findById(Class<T> entityClass,ID id);
    public List<T> findAll(Class<T> entityClass);
    }


    BaseHibernateDao

    package dao.base;
    import java.io.Serializable;
    import java.util.List;
    import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
    public class BaseHibernateDao<T,ID extends Serializable> extends HibernateDaoSupport implements BaseDao<T,ID> {
    @Override
    public void delete(T entity) {
    this.getHibernateTemplate().delete(entity);
    }

    @Override
    public void deleteById(Class<T> entityClass, ID id) {
    delete(
    this.findById(entityClass, id));
    }

    @Override
    public T findById(Class<T> entityClass, ID id) {
    return (T)this.getHibernateTemplate().get(entityClass, id);
    }

    @Override
    public List<T> findAll(Class<T> entityClass) {
    String name
    =entityClass.getName();
    return this.getHibernateTemplate().find("from"+name);
    }

    @Override
    public void save(T entity) {
    this.getHibernateTemplate().save(entity);
    }

    @Override
    public void update(T entity) {
    this.getHibernateTemplate().update(entity);
    }

    }




    UserDao

     

    package dao;
    import dao.base.BaseDao;
    import model.User;
    public interface UserDao extends BaseDao<User,Integer>{
    User findUserByNameAndPass(String name,String password);
    }


     

     UserHibernateDao

    package dao.hibernate;   
       
    import java.util.List;   
       
    import model.User;   
    import dao.UserDao;   
    import dao.base.BaseHibernateDao;   
       
    public class UserHibernateDao extends BaseHibernateDao<User,Integer> implements UserDao {   
       
        @Override   
        
    public User findUserByNameAndPass(String name, String password) {   
            
    // TODO Auto-generated method stub   
            List<User> us=this.getHibernateTemplate().find("from User user where name=? and password=?",new Object[]{name,password});   
            
    if(us.size()==1)   
                
    return us.get(0);   
            
    else   
                
    return null;   
        }
       
       
    }
     

    posted on 2011-02-20 14:13 都市淘沙者 閱讀(1570) 評論(0)  編輯  收藏 所屬分類: Hibernate/ORM

    主站蜘蛛池模板: 91精品国产免费久久国语蜜臀| 免费一看一级毛片人| 真人做A免费观看| 免费一级做a爰片性色毛片| 国产午夜亚洲精品| 中文永久免费观看网站| 国产一卡2卡3卡4卡2021免费观看| 亚洲电影日韩精品 | 亚洲av日韩综合一区久热| 久久久久免费视频| 免费激情视频网站| 亚洲国产女人aaa毛片在线| 久久精品熟女亚洲av麻豆| www视频在线观看免费| 亚洲精品亚洲人成在线观看| 亚洲AV电影天堂男人的天堂| 国产成人免费ā片在线观看| 精品久久久久久亚洲精品| 日韩精品内射视频免费观看| 丝袜熟女国偷自产中文字幕亚洲| 亚洲永久网址在线观看| 亚欧人成精品免费观看| 久久久久精品国产亚洲AV无码| 在线免费观看一区二区三区| 亚洲网站视频在线观看| 黄色大片免费网站| 成年女人永久免费观看片| 国产精品高清视亚洲精品| 91精品全国免费观看含羞草| 亚洲一级大黄大色毛片| 四虎免费永久在线播放| 亚洲gay片在线gv网站| 免费无码又爽又刺激聊天APP| 亚洲黄色在线观看视频| 午夜宅男在线永久免费观看网| 亚洲国产成人久久77| av免费不卡国产观看| 黄色a级片免费看| 亚洲黄色高清视频| 四虎精品亚洲一区二区三区| 羞羞网站免费观看|