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);
        }
    
    }
  • 相关阅读:
    一、初识数据库
    面向对象—基础、名称空间、三大特性
    六、内置函数
    五、迭代器、生成器、装饰器
    四、global和nonlocal、函数名应用、格式化输出
    三、名称空间
    二、函数的参数
    shell脚本
    线性代数
    [模块] python调用java代码-jpype
  • 原文地址:https://www.cnblogs.com/asndxj/p/10659415.html
Copyright © 2011-2022 走看看