首页 > 学院 > 开发设计 > 正文

项目中三大框架整合的BaseDao接口及其实现

2019-11-14 09:49:06
字体:
来源:转载
供稿:网友

BaseDao<T>.java

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

package cn.itcast.core.dao.impl;import java.io.Serializable;import java.lang.reflect.ParameterizedType;import java.util.List;import org.hibernate.Query;import org.sPRingframework.orm.hibernate3.support.HibernateDaoSupport;import cn.itcast.core.dao.BaseDao;public abstract class BaseDaoImpl<T> extends HibernateDaoSupport implements BaseDao<T> {	Class<T> clazz;	//泛型中T的类类型		public BaseDaoImpl(){//把泛型中的T给确定		//this.getClass()取到的类是被实例化的那个类		ParameterizedType pt = (ParameterizedType) this.getClass().getGenericSuperclass();//BaseDaoImpl<User>		clazz = (Class<T>)pt.getActualTypeArguments()[0];//为什么是数组,因为可能是<T,E>的形式	}		@Override	public void save(T entity) {		getHibernateTemplate().save(entity);	}	@Override	public void update(T entity) {		getHibernateTemplate().update(entity);	}	@Override	public void delete(Serializable id) {		getHibernateTemplate().delete(findObjectById(id));	}	@Override	public T findObjectById(Serializable id) {		return getHibernateTemplate().get(clazz, id);	}	@Override	public List<T> findObjects() {		Query query = getsession().createQuery("FROM "+clazz.getSimpleName());//hql		return query.list();	}}


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表