1.问题描述
对于不同的对象我们都要进行基本的增删改查的操作,这样的话就会写许多重复的代码,所以我们可以把这些公共的方法抽取出来放入BaseDao和BaseDaoImp,我们其他的接口和实现类就只要去继承和实现BaseDao和BaseDaoImp而不需要去自己重复写同样的代码了。
2.UML类图
3.实现细节和代码
public class BaseDaoImp<T> implements IBaseDao<T>{
@Resource
private SessionFactory sessionFactory;
private Class<T> clazz;
/**
* 用(调用者的类)实现类的类型获取当前的类类型
*/
public BaseDaoImp(){
//this.getClass() 子类的类型 反射技术得到T的真实类型
ParameterizedType pt = (ParameterizedType)this.getClass()
.getGenericSuperclass();//获取当前new的对象的泛型的父类类型
this.clazz=(Class<T>) pt.getActua