hibernate dao 教程.doc
文本预览下载声明
[转]一个泛型Hibernate DAO实现
? 文章来源/dingx/archive/2007/08/06/1728287.aspxpackage?sgf4web.dao;import?java.io.Serializable;import?java.util.*;import?java.util.regex.Matcher;import?java.util.regex.Pattern;import?org.hibernate.*;import?org.hibernate.criterion.*;import?org.springframework.orm.hibernate3.HibernateCallback;import?org.springframework.orm.hibernate3.support.HibernateDaoSupport;import?sgf4web.dao.support.PaginationSupport;import?sgf4web.util.GenericsUtils;/**?*//**?*?泛型Hibernate?DAO类?*??*?@author?DigitalSonic?*/@SuppressWarnings(unchecked)public?class?HibernateGenericDaoT,?ID?extends?Serializable?extends?HibernateDaoSupport?...{????private?ClassT?pojoClass;????????/**?*//**?????*?初始化DAO,获取POJO类型?????*/????public?HibernateGenericDao()?...{//????????this.pojoClass?=?(ClassT)((ParameterizedType)getClass().getGenericSuperclass()).getActualTypeArguments()[0];????????this.pojoClass?=?GenericsUtils.getSuperClassGenricType(getClass());????}????????/**?*//**?????*?获得该DAO对应的POJO类型?????*/????public?ClassT?getPojoClass()?...{????????return?this.pojoClass;????}????????/**?*//**?????*?获得该DAO对应的POJO类型名?????*/????public?String?getPojoClassName()?...{????????return?getPojoClass().getName();????}????//加载对象????????/**?*//**?????*?加载所有的对象?????*/????public?ListT?loadAll()?...{????????return?(ListT)getHibernateTemplate().loadAll(getPojoClass());????}????????/**?*//**?????*?根据hql查询?????*?????*?@param?values?可变参数?????*/????public?List?find(String?hql,?Object...?values)?...{????????return?getHibernateTemplate().find(hql,?values);????}????/**?*//**?????*?根据条件加载对象?????*??????*?@param?criteria?Criteria实例?????*/????public?ListT?findByCriteria(final?Criteria?criteria)?...{????????List?list?=?criteria.list();?????????return?transformResults(list);????}????????/**?*//**?????*?根据条件加载对象?????*?@param?detachedCriteria?DetachedCriteria实例?????*/????public?ListT?findByCriteria(final?DetachedCriteria?detachedCriteria)?...{??
显示全部