《JAVA技巧-通用Dao接口和hibernate的实现.docx》由会员分享,可在线阅读,更多相关《JAVA技巧-通用Dao接口和hibernate的实现.docx(6页珍藏版)》请在金锄头文库上搜索。
1、 JAVA技巧:通用Dao接口和hibernate的实现package com.qiujy.dao;import java.io.Serializable;import java.util.List;/* 基于泛型的通用Dao接口*/public interface GenericDao void create(T entity);void delete(T entity);void update(T entity);T findById(Serializable id);List findAll();List findList(int pageNo, int pageSize);int ge
2、tCountOfAll();hibernate对此泛型Dao接口的使用:package com.qiujy.dao.hibernate;import java.io.Serializable;import java.lang.reflect.ParameterizedType;import java.util.List;import org.hibernate.criterion.Projections;import mon.HibernateUtil;import com.qiujy.dao.GenericDao;/* Hibernate对泛型考试,大提示通用Dao接口的实现*/public
3、 class GenericHibernateDaoImpl implements GenericDao private Class clazz;SuppressWarnings(“unchecked“)public GenericHibernateDaoImpl() /通过反射猎取T的类型信息实例this.clazz = (Class)(ParameterizedType)this.getClass().getGenericSuperclass().getActualTypeArguments()0;public void create(T entity) HibernateUtil.get
4、Session().save(entity);public void delete(T entity) HibernateUtil.getSession().delete(entity);SuppressWarnings(“unchecked“)public void update(T entity) /HibernateUtil.getSession().saveOrUpdate(entity);entity = (T) HibernateUtil.getSession().merge(entity);SuppressWarnings(“unchecked“)public List find
5、All() return HibernateUtil.getSession().createCriteria(clazz).list();SuppressWarnings(“unchecked“)public List findList(int pageNo, int pageSize) return HibernateUtil.getSession().createCriteria(clazz).setFirstResult(pageNo - 1) * pageSize).setMaxResults(pageSize).list();public int getCountOfAll() In
6、teger count = (Integer) HibernateUtil.getSession().createCriteria(clazz).setProjection(Projections.rowCount().uniqueResult();if (null = count) return 0; else return count.intValue();SuppressWarnings(“unchecked“)public T findById(Serializable id) return (T)HibernateUtil.getSession().load(clazz, id);
7、/get使用泛型Dao接口:package com.qiujy.dao;import java.util.List;import com.qiujy.domain.Resource;/* Resource类的Dao接口*/public interface ResourceDao extends GenericDao public List findResources(int status);使用hibernate的实现:package com.qiujy.dao.hibernate;import java.util.List;import mon.HibernateUtil;import co
8、m.qiujy.dao.ResourceDao;import com.qiujy.domain.Resource;public class ResourceDaoImpl extends GenericHibernateDaoImpl implements ResourceDao SuppressWarnings(“unchecked“)public List findResources(int status) return (List)HibernateUtil.getSession().createQuery(“from Resource where status=:status“).setInteger(“status“, status).list();