标签:sed param exce save size date bst tor round
package com.tax.core.dao;import java.io.Serializable;import java.util.List;/*** BaseDao* @author ZENG.XIAO.YAN* @date 2017年6月29日 上午10:36:57* @version v1.0*/public interface BaseDao<T> {/*** 新增* @param entity*/public void save(T entity);/*** 更新* @param entity*/public void update(T entity);/*** 根据id删除* @param id*/public void deleteById(Serializable id);/*** 通过id查找* @param id* @return 实体*/public T findById(Serializable id);/*** 查找所有* @return List集合*/public List<T> findAll();}
package com.tax.core.dao.impl;import java.io.Serializable;import java.lang.reflect.ParameterizedType;import java.util.List;import org.hibernate.HibernateException;import org.hibernate.Query;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.orm.hibernate5.support.HibernateDaoSupport;- import com.tax.core.dao.BaseDao;
/*** BaseDaoImpl* @author ZENG.XIAO.YAN* @date 2017年6月29日 下午12:23:16* @version v1.0*/public abstract class BaseDaoImpl<T> extends HibernateDaoSupport implements BaseDao<T> {private Class<T> clazz;// 按照类型自动注入SessionFactory; 在实例化的时候,Spring按照形参的类型自动注入@Autowiredpublic void setMySessionFactory(SessionFactory sessionFactory){setSessionFactory(sessionFactory);}public BaseDaoImpl() {//this表示当前被实例化的对象;如UserDaoImplParameterizedType pt = (ParameterizedType)this.getClass().getGenericSuperclass();//BaseDaoImpl<User>clazz = (Class<T>)pt.getActualTypeArguments()[0];}/*** 获取session* @return session*/public Session getCurrentSession(){Session session = null;this.currentSession();try {session = getSessionFactory().getCurrentSession();} catch (HibernateException e) {session = getSessionFactory().openSession();}return session;}@Overridepublic void save(T entity) {getHibernateTemplate().save(entity);}@Overridepublic void update(T entity) {getHibernateTemplate().update(entity);}@Overridepublic void deleteById(Serializable id) {getHibernateTemplate().delete(findById(id));}@Overridepublic T findById(Serializable id) {return getHibernateTemplate().get(clazz, id);}@Overridepublic List<T> findAll() {Session session = getCurrentSession();Query query = session.createQuery("FROM "+ clazz.getSimpleName());return query.list();}}




使用HibernateDaoSupport抽取BaseDao
标签:sed param exce save size date bst tor round
原文地址:http://www.cnblogs.com/zeng1994/p/7397573.html