BaseDao
package cn.crm.dao;
import java.io.Serializable;
import java.util.List;
import org.hibernate.criterion.DetachedCriteria;
/**
* @author Administrator
* 实现dao的功能的结构 这里我们需要dao.interface来实现我们的base 同时会有
* 一个baseimpl这个类去具体实现basedao的功能
* 其他的daoimpl来继承
*/
public interface BaseDao<T> {
// 增
void save(T t);
// 删
void delete(T t);
// 删
// 所有能作为id的类型都是serializable的实现类
// 包括八大基本类型 包装类 String
void delete(Serializable id);
// 改
void update(T t);
// 查
T getById(Serializable id);
// 查
Integer getTotalCount(DetachedCriteria dc);
// 查
List<T> getPageList(DetachedCriteria dc,Integer start,Integer pageSize);
}
BaseDaoImpl
package cn.crm.dao.impl;
import java.io.Serializable;
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
import java.util.List;
import org.hibernate.criterion.DetachedCriteria;
import org.hibernate.criterion.Projections;
import org.springframework.orm.hiber