[使用心得]maven2之m2eclipse使用手册之四编写通用Dao实例(二)

由于msn有字数限制所以只能分批贴,请见谅

公共Dao层部分:

BasicDaoIf:通用dao层接口,由于是基于1.0版本难免有点bug还没修正,请勉强参考,这里只是贴出测试部分的代码与所调用的方法,T必须是继承了JavaBean的类型,也就是实现了序列化,PK则为可以序列化的类型,如Integer

/**  
 *   
 * 项目名称:通用dao层
 * 类名称:BasicDao
 * 类描述:  
 * 				@param T 继承了JavaBean的序列化实体
 * 				@param PK 实现了Serializable 接口的类型如 Integer,String
 * 创建人:Edward
 * 创建时间:2010-2-12 下午07:07:25  
 * 修改人:Edward  
 * 修改时间:2010-4-47 下午07:07:25  
 * 修改备注:  增删改查方法
 * @version   1.2
 *   
 */
public interface BasicDaoIf<T extends JavaBean,PK extends Serializable> {
	
	/**
	 * 查找当前实体所有记录
	 *  @param entityClass 实体类的对应的class 必须继承JavaBean实现了序列化
	 *  @return List<T> 返回对应的实体集合
	 *  example: List<User> list =this.findAll(User.class);
	 * */ 
	 List<T> findAll(final Class<T> entityClass);	
}

AbstarctBasicDao:把经常要处理的部分抽出来作为公共类

public abstract class AbstractBasicDao<T extends JavaBean, PK extends Serializable>
		extends BasicSupportDao implements BasicDaoIf<T, PK> {	
	@SuppressWarnings("unchecked")
	@Override
	public List<T> findAll(final Class<T> entityClass) {

		return getHibernateTemplate().findByCriteria(
				DetachedCriteria.forClass(entityClass));
	}
}

 

BasicDaoImpl:由于spring中使用注解的话会实例化AbstractBasicDao,因为是抽象的不能实例化所以只能新建多一个类用于继承抽象类,当然也可以把抽象类写成class.只要继承后直接覆盖方法即可

 

 

public class BasicDaoImpl<T extends JavaBean, PK extends Serializable> extends
        AbstractBasicDao<T, Serializable> {
 
    @Override
    public List<T> findAll(Class<T> entityClass) {
         
        return super.findAll(entityClass);
    }
    
}

BasicSupportDao:如果使用spring的注解的话会造成找不到hibernatetemplate,所以需要独立写一个类进行注入,(在spring3.0.x之后这个可以不需要了,因为有了新特性@bean的注解)

public class BasicSupportDao extends HibernateDaoSupport {
 
    @Resource(name = "hibernateTemplate")
    public void setHibernatetemplate(HibernateTemplate hibernateTemplate) {
        super.setHibernateTemplate(hibernateTemplate);
    }
}

转载于:https://www.cnblogs.com/edwardlauxh/archive/2010/06/02/1918582.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值