关注微信公众号 太平洋学习网 扫描二维码
最新消息:关注【太平洋学习网】微信公众号,可以获取全套资料,【全套Java基础27天】【JavaEE就业视频4个月】【Android就业视频4个月】

SSH框架baseDao封装完整模板实例

Javaweb admin 浏览 评论

SSH框架开发项目,经常要用到baseDao来封装相同的操作,这样可以省去很多不必要的代码,大大降低了开发的时间,以下的basedao模板,在很多企业项目开发中都是要用到的,而且都差不多相同,如果你把这个拿去放到自己的项目中,也是完全没有问题的。

baseDao接口,无非就是增删改查,因为这些操作是很多的,泛型千万不要漏了:

package cn.taotao.core.dao;
import java.io.Serializable;
import java.util.List;
public interface BaseDao<T> {
	//新增
	public void save(T entity);
	//更新
	public void update(T entity);
	//删除
	public void delete(Serializable id);
	//根据id查询
	public T findById(Serializable id);
	//查询列表
	public List<T> findObjects();
}	

再看看ssh框架的baseDaoImpl实现类,最关键的部分:

package cn.taotao.core.dao.impl;
import java.io.Serializable;
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
import java.util.List;
import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;
import org.springframework.orm.hibernate4.support.HibernateDaoSupport;
import cn.taotao.core.dao.BaseDao;
public abstract class BaseDaoImpl<T> extends HibernateDaoSupport implements BaseDao<T> {

	Class<T> clazz;
	/**获取当前类*/
	@SuppressWarnings("unchecked")
	public BaseDaoImpl(){
		ParameterizedType pt = (ParameterizedType)this.getClass().getGenericSuperclass();//BaseDaoImpl<User>
		clazz = (Class<T>)pt.getActualTypeArguments()[0];
	}

	/**获取session*/
	public Session getCurrentSession(){
		Session session = null;
		try {
			session = getSessionFactory().getCurrentSession();
		} catch (HibernateException e) {
			session = getSessionFactory().openSession();
		}
		return session;
	}
	@Override
	public void update(T entity) {
		this.getHibernateTemplate().update(entity);
		
	}
	
	@Override
	public void save(T entity) {
		this.getHibernateTemplate().save(entity);		
	}

	@Override
	public void delete(Serializable id) {
		this.getHibernateTemplate().delete(findById(id));
		
	}

	@Override
	public T findById(Serializable id) {		
		return this.getHibernateTemplate().get(clazz, id);
	}

	@Override
	public List<T> findObjects() {
		Session session = getCurrentSession();
		Query query = session.createQuery("FROM " +clazz.getSimpleName());
		return query.list();
	}

}


来源网站:太平洋学习网,转载请注明出处:http://www.tpyyes.com/a/javaweb/2016/0918/16.html