zoukankan      html  css  js  c++  java
  • 持久层抽取之类名的获取

    package com.hdh.bos.dao.base.impl;
    
    import java.io.Serializable;
    import java.lang.reflect.ParameterizedType;
    import java.lang.reflect.Type;
    import java.util.List;
    
    import org.hibernate.Hibernate;
    import org.springframework.orm.hibernate3.HibernateTemplate;
    import org.springframework.orm.hibernate5.support.HibernateDaoSupport;
    
    import com.hdh.bos.dao.base.BaseDao;
    
    public class BaseDaoImpl<T> extends HibernateDaoSupport implements BaseDao<T> {
    
        private Class<T> entityClass;
        
    
        public BaseDaoImpl(Class<T> entityClass) {
            //获取BaseDaoImpl<T> 的T类型
            ParameterizedType Superclass = (ParameterizedType) this.getClass().getGenericSuperclass();
            Type[] actualTypeArguments = Superclass.getActualTypeArguments();
            entityClass=(Class<T>) actualTypeArguments[0];
            
        }
    
        @Override
        public void save(T entity) {
            getHibernateTemplate().save(entity);
        }
    
        @Override
        public void delete(T entity) {
            getHibernateTemplate().delete(entity);
    
        }
    
        @Override
        public void update(T entity) {
            getHibernateTemplate().update(entity);
    
        }
    
        @Override
        public T fingById(Serializable id) {
    
            return getHibernateTemplate().get(entityClass, id);
        }
    
        @Override
        public List<T> findAll() {
            String hql = "FROM " + entityClass.getName();
            return (List<T>) getHibernateTemplate().find(hql);
        }
    
    }
  • 相关阅读:
    Modernizr使用指南(转)
    使用Func<>和Action简化委托
    实现类似MVC ViewBag类型的对象
    更改服务器的SID 加入域控制器提示SID重复
    SQL SERVER 执行大于80M的SQL 脚本
    完全关闭IIS日志,包括System32下的LogFile
    MVC不用302跳转Action,内部跳转
    SHA1l加密
    获取当前时间戳
    invoke反射
  • 原文地址:https://www.cnblogs.com/asndxj/p/10659415.html
Copyright © 2011-2022 走看看