方式一:构造方法中传入一个Class
1、通用的DAO的接口
package com.itheima.crm.dao;
import java.io.Serializable;
import java.util.List;
import org.hibernate.criterion.DetachedCriteria;
/**
* 通用DAO的接口
* @author tycoon
*
*/
public interface BaseDao<T> {
public void save(T t);
public void update(T t);
public void delete(T t);
public T findById(Serializable id);
//查询所有
public List<T> findAll();
//统计个数
public Integer findCount(DetachedCriteria detachedCriteria);
//分页查询
public List<T> findByPage(DetachedCriteria detachedCriteria,Integer begin,Integer pageSize);
}
2、通用的DAO的实现类
package com.itheima.crm.dao.impl;
import java.io.Serializable;
import java.util.List;
import org.hibernate.criterion.DetachedCriteria;
import org.hibernate.criterion.Projection;
import org.hibernate.criterion.Projections;
impor