/**  
* @Title: BaseDaoImpl.java
* @Package org.dao.impl
* @Description: TODO该方法的主要作用:
* @author A18ccms A18ccms_gmail_com  
* @date 2017-11-21 上午9:44:53
* @version V1.0  
*/
package org.dao.impl;

import java.io.Serializable;
import java.lang.reflect.ParameterizedType;

import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

 /**   
 *    
 * 项目名称:test_hibernate   
 * 类名称:BaseDaoImpl   
 * 类描述:   实现类
 * 创建人:Mu Xiongxiong  
 * 创建时间:2017-11-21 上午9:44:53   
 * 修改人:Mu Xiongxiong   
 * 修改时间:2017-11-21 上午9:44:53   
 * 修改备注:   
 * @version    
 *    
 */
public class BaseDaoImpl<T> extends HibernateDaoSupport{

    //反射类
    public Class<T> entityClass;

    @SuppressWarnings("unchecked")
    public BaseDaoImpl(){
        entityClass=(Class<T>) ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[0];
    }

    /**
     * 
    * @Description: 该方法的主要作用:添加信息
    * @Title: saveEntity
    * @param  @param entity 设定文件  
    * @return  返回类型:void   
    * @throws
     */
    public void saveEntity(T entity) {
        super.getHibernateTemplate().save(entity);  
    }

    /**
     * 
    * @Description: 该方法的主要作用:修改信息
    * @Title: updateEntity
    * @param  @param entity 设定文件  
    * @return  返回类型:void   
    * @throws
     */
    public void updateEntity(T entity) {
        // TODO Auto-generated method stub
        super.getHibernateTemplate().update(entity);
    }

    /**
     * 
    * @Description: 该方法的主要作用:删除信息
    * @Title: delEntity
    * @param  @param entity 设定文件  
    * @return  返回类型:void   
    * @throws
     */
    public void delEntity(T entity) {
        // TODO Auto-generated method stub
        super.getHibernateTemplate().delete(entity);
    }

    /**
     * 
    * @Description: 该方法的主要作用:根据编号查询信息
    * @Title: queryById
    * @param  @param id
    * @param  @return 设定文件  
    * @return  返回类型:T   
    * @throws
     */
    public T queryById(Serializable id) {
        // TODO Auto-generated method stub
        return super.getHibernateTemplate().get(entityClass, id);
    }



}