首页>代码>s2sh全注解实现的增删改查>/xgssh2/xgssh2/xgssh2/src/com/xg/ssh2/dao/impl/BaseDaoImpl.java
package com.xg.ssh2.dao.impl;

import java.io.Serializable;
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
import java.util.Collection;

import org.hibernate.criterion.DetachedCriteria;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

import com.xg.ssh2.dao.IBaseDao;


/**
 * 基础DAO实现类 实现基本CRUD等功能
 * 
 * @author xg
 * @version 1.0
 * @date 2012-12-29
 * @param <T>
 */
public class BaseDaoImpl<T extends Serializable> extends HibernateDaoSupport
		implements IBaseDao<T> {

	/**
	 * 泛型的具体类型
	 */
	protected Class<T> entityClass;

	public BaseDaoImpl() { // 根据实例类自动获取实体类类型
		this.entityClass = null;
		Class c = getClass();
		Type t = c.getGenericSuperclass();
		if (t instanceof ParameterizedType) {
			Type[] p = ((ParameterizedType) t).getActualTypeArguments();
			this.entityClass = (Class<T>) p[0];
		}
	}

	@Override
	public void delete(T entity) {
		getHibernateTemplate().delete(entity);
	}

	@Override
	public T get(Serializable id) {
		if (id != null) {
			return (T) getHibernateTemplate().get(entityClass, id);
		}
		return null;
	}

	@Override
	public Collection<T> queryAll() {
		DetachedCriteria detached = DetachedCriteria.forClass(entityClass);
		return this.getHibernateTemplate().findByCriteria(detached);
	}

	@Override
	public void save(T entity) {
		getHibernateTemplate().save(entity);
	}

	@Override
	public void update(T entity) {
		getHibernateTemplate().update(entity);
	}

}
最近下载更多
and123456  LV11 2021年4月20日
wob_ku  LV6 2020年7月25日
576995704  LV1 2020年6月17日
xuchi123  LV7 2020年5月2日
wangzile1994  LV12 2020年3月30日
半三文  LV7 2020年2月4日
123hdhdhd  LV10 2019年12月1日
lwp011  LV27 2019年9月6日
1412321161  LV4 2019年7月1日
kerolalala  LV2 2019年6月3日
最近浏览更多
yut1an  LV2 2022年10月31日
张大大的账号  LV2 2022年4月26日
dukie123  LV1 2022年2月13日
1798139161  LV4 2022年2月7日
yexiansheng  LV1 2021年11月6日
qweqweqwe7987987  LV1 2021年6月22日
and123456  LV11 2021年4月20日
ming_123_9715  LV23 2021年4月5日
0592lyj  LV9 2021年1月4日
w2919678982  LV1 2020年12月25日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友