基类Dao:
-- 基于Hibernate的BaseDao.java
import java.io.Serializable;
import java.lang.reflect.Type;
import java.lang.reflect.ParameterizedType;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.orm.hibernate4.HibernateTemplate;
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;
}
}
查询接口方法的设计
Dao层除了常见的CRUD,还有根据查询条件执行数据查询。
比较好的查询方法写法有: