Dao基类的设计方案之一

来源:互联网 发布:计算机编程语言 知乎 编辑:程序博客网 时间:2024/05/19 03:23

dao数据操作的隔离层,基类因该包含所有的基本增删改查。关于这样的设计有好多中方式,最常用的就是设计为接口,但是子类依然还是要编写各自的最基本的增删改查,比较繁琐,个人比较喜欢下面的这个方法,子类中只要实现各自特色,基本的增删改查交给基类BaseDao<T>。

public class BaseDao<T> { 

   @Autowired
   private HibernateTemplate hibernateTemplate;
   private Class entityClass;
   
   public BaseDao(){  //在子类中通过反射找回父类具体泛型类型对应的对象
    Type genType = getClass().getGenericSuperclass();
        Type[] params = ((ParameterizedType) genType).getActualTypeArguments();
       
entityClass = (Class) params[0];
    }
   
    public T get(Serializable id){
    return (T)hibernateTemplate.get(entityClass, id);
    }
    
    public void save(T entity){
    hibernateTemplate.save(entity);
    }
    
    public void update(T entity){
    hibernateTemplate.update(entity);
    }


public HibernateTemplate getHibernateTemplate() {
return hibernateTemplate;
}
    
}

0 0
原创粉丝点击