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);
        }
    
    }
  • 相关阅读:
    Math 类、Random 类、BigDecimal 类
    Redis 持久化原理及过期 key 清除策略
    MySql 存储引擎和索引
    MySql 视图、触发器以及存储过程
    布隆过滤器
    微信红包实现原理
    11-散列3 QQ帐户的申请与登陆 (25 分)
    11-散列2 Hashing (25 分)
    11-散列1 电话聊天狂人 (25 分)
    C语言实现Linux之ls
  • 原文地址:https://www.cnblogs.com/asndxj/p/10659415.html
Copyright © 2011-2022 走看看