Hi ~大家好,好久没写博客了。最近复习一些框架的知识,顺便写些东西来整理一下。
今天要记录的就是关于hibernate在dao层的增删改查。
相信很多刚入门的朋友在写dao层代码的时候,都是一个实体对应一个dao
然后里面都是写满了增删改查,自己以前也是,不过为了效率,我们必须剔除这些冗余代码了。
反射 + 泛型 可以帮我们解决这些东西。
首先这是项目的一些简单架构
说明 :
第一步: BaseDao<T>
/**
* 使用泛型 使传入的实体类型不受限制
* 减少各自独立的dao操作
* @author wzh
*
* @param <T>
*/
public interface BaseDao<T> {
//增加
void save(T entity);
//删除
void delete(Long id);
//修改
void update(T entity);
//根据ID获取
T getById(Long id);
//根据多个ID获取
List<T> getByIds(Long[] id);
//获取所有
List<T> findAll();
}
然后继续对dao进行抽象:
public class BaseDaoImpl<T> implements BaseDao<T> {
@Resource
priv