Interface
import java.io.Serializable; import java.util.List; public interface GenericDao<T> extends Serializable { void addEntity(T o); void delEntity(T o); void updateEntity(T o); T getEntity(Class<T> clz, Serializable pk); Object getEntity(String hql,Object[] objs); Integer getPages(String hql); Integer getPages(String hql,Integer deptid); int getBlurredPage(String hql, Object[] objs); List<T> getListbyHql(String hql,Object[] objs); List<T> getListbyHql(String hql,int page); List<T> getListbyPage(String hql, Object[] objs, int page); List<T> getBlurredList(String hql, Object[] objs, int page); List<T> getGuessList(String hql,Object[] objs); boolean cbObjs(Object[] objs, String hql); Integer getPages(String hql,String str); Integer getNpages(String hql); Integer GP(String hql,Object[] objs,int pg); String getStrbyhql(String hql, Object[] objs); void updateByhql(String hql, Object[] objs); public Integer getAPages(Object[] objs, String hql); Object getObjbystr(String hql,String str); Double getDouble(String hql,Object[] objs); List<T> getListbyHql(String hql,Integer estid); List<T> getListbyHql(String hql,String status,int page); List<T> getListbyHql(String hql, Object[] objs,int page,int pg); }
Class
import java.io.Serializable; import java.util.List; import org.hibernate.Hibernate; import org.hibernate.Query; import org.hibernate.Session; import org.springframework.orm.hibernate3.support.HibernateDaoSupport; import com.topzh.persists.dao.GenericDao; @SuppressWarnings("serial") public class GenericDaoImpl<T> extends HibernateDaoSupport implements GenericDao<T> { /** * 添加 * * @param Object */ public void addEntity(T o) { getHibernateTemplate().save(o); } /** * 删除 * * @param Object */ public void delEntity(T o) { getHibernateTemplate().delete(o); } /** * 根据主键查询单个对象 * * @param Class * @param primary * key * @return Object */ @SuppressWarnings("unchecked") public Object getEntity(Class clz, Serializable pk) { return (T) getHibernateTemplate().get(clz, pk); } public Object getEntity(String hql,Object[] objs) { Object obj = getHibernateTemplate().find(hql, objs).get(0); return obj; } /** * 根据Hql查询 * * @param String * hql * @param Object * [] objs * @return list */ @SuppressWarnings("unchecked") public List<T> getListbyHql(String hql, Object[] objs) { try { List<T> list; if (objs != null) { list = getHibernateTemplate().find(hql, objs); } else { list = getHibernateTemplate().find(hql); } return list; } catch (RuntimeException e) { e.printStackTrace(); return null; } finally { if (getSession().isOpen()) { getSession().close(); } } } @SuppressWarnings("unchecked") public List<T> getListbyHql(String hql, Integer estid) { Session session = this.getHibernateTemplate().getSessionFactory() .openSession(); try { Query query = session.createQuery(hql); query.setParameter(0, estid, Hibernate.INTEGER); query.setFirstResult(0); query.setMaxResults(10); List<T> list = query.list(); return list; } catch (RuntimeException e) { e.printStackTrace(); return null; } finally { if (session.isOpen()) { session.close(); } } } @SuppressWarnings("unchecked") public List<T> getListbyHql(String hql, String status,int page) { Session session = this.getHibernateTemplate().getSessionFactory() .openSession(); try { Query query = session.createQuery(hql); query.setParameter(0, status, Hibernate.STRING); query.setFirstResult((page - 1) * 10); query.setMaxResults(10); List<T> list = query.list(); return list; } catch (RuntimeException e) { e.printStackTrace(); return null; } finally { if (session.isOpen()) { session.close(); } } } public List<T> getListbyHql(String hql, Object[] objs,int page,int pg) { Session session = this.getHibernateTemplate().getSessionFactory() .openSession(); try { Query query = session.createQuery(hql); if (null!=objs) { for (int i = 0,n=objs.length; i < n; i++) { query.setParameter(i, objs[i]); } } query.setFirstResult((page - 1) * pg); query.setMaxResults(pg); List<T> list = query.list(); return list; } catch (RuntimeException e) { e.printStackTrace(); return null; } finally { if (session.isOpen()) { session.close(); } } } /** * 根据HQL查单个String */ public String getStrbyhql(String hql, Object[] objs) { String str = (String) getHibernateTemplate().find(hql, objs).get(0); if (getSession().isOpen()) { getSession().close(); } return str; } @SuppressWarnings("unchecked") public List<T> geStrList(String hql) { List<T> list = getHibernateTemplate().find(hql); if (getSession().isOpen()) { getSession().close(); } return list; } public Object getObjbystr(String hql, String str) { Object obj = getHibernateTemplate().find(hql, str).get(0); getSession().close(); return obj; } /** * 根据HQL更新 */ public void updateByhql(String hql, Object[] objs) { try { getHibernateTemplate().bulkUpdate(hql, objs); } catch (Exception e) { e.printStackTrace(); } finally { if (getSession().isOpen()) { // getHibernateTemplate().getSessionFactory(). getSession().close(); } } } /** * 获取分页页数 * * @param String * hql * @return int page */ public Integer getPages(String hql) { Session session = this.getHibernateTemplate().getSessionFactory() .openSession(); Integer count = (Integer) session.createQuery(hql).uniqueResult(); Integer pg = 35; Integer p = count % pg; Integer page = count / pg; if (p > 0) { page++; } session.close(); return page; } public Integer getPages(String hql, Integer deptid) { Session session = this.getHibernateTemplate().getSessionFactory() .openSession(); Query query = session.createQuery(hql); query.setParameter(0, deptid, Hibernate.INTEGER); Integer count = (Integer) query.uniqueResult(); Integer pg = 35; Integer p = count % pg; Integer page = count / pg; if (p > 0) { page++; } session.close(); return page; } public Integer getPages(String hql, String str) { Session session = this.getHibernateTemplate().getSessionFactory() .openSession(); Query query = session.createQuery(hql); query.setParameter(0, str, Hibernate.STRING); Integer count = (Integer) query.uniqueResult(); Integer pg = 35; Integer p = count % pg; Integer page = count / pg; if (p > 0) { page++; } session.close(); return page; } public Integer getAPages(Object[] objs, String hql) { Session session = this.getHibernateTemplate().getSessionFactory() .openSession(); Query query = session.createQuery(hql); Integer month = (Integer) objs[0]; Integer year = (Integer) objs[1]; if (month != -1) { query.setParameter(0, month, Hibernate.INTEGER); query.setParameter(1, year, Hibernate.INTEGER); } Integer count = (Integer) query.uniqueResult(); Integer pg = 35; Integer p = count % pg; Integer page = count / pg; if (p > 0) { page++; } session.close(); return page; } public Integer getNpages(String hql) { Session session = this.getHibernateTemplate().getSessionFactory() .openSession(); Integer count = (Integer) session.createQuery(hql).uniqueResult(); Integer pg = 10; Integer p = count % pg; Integer page = count / pg; if (p > 0) { page++; } session.close(); return page; } public Integer GP(String hql,Object[] objs,int pg) { Session session = this.getHibernateTemplate().getSessionFactory().openSession(); Query query = session.createQuery(hql); if (null!=objs) { for (int i = 0,n=objs.length; i < n; i++) { query.setParameter(i, objs[i]); } } Integer count = (Integer) query.uniqueResult(); Integer p = count % pg; Integer page = count/pg; if (p>0) { page++; } session.close(); return page; } /** * 分页查询 * * @param String * hql * @param Object * [] objs * @param int page * @return list */ @SuppressWarnings("unchecked") public List<T> getListbyPage(String hql, Object[] objs, int page) { List<T> list = null; Session session = this.getHibernateTemplate().getSessionFactory() .openSession(); try { Query query = session.createQuery(hql); if (null != objs) { for (int i = 0, n = objs.length; i < n; i++) { query.setParameter(i, objs[i]); } } query.setFirstResult((page - 1) * 35); query.setMaxResults(35); list = query.list(); } catch (RuntimeException e) { list = null; e.printStackTrace(); } finally { if (session.isOpen()) { session.close(); } } return list; } /** * 模糊查询页数 * * @param hql * @param objs * [] * @return page */ public int getBlurredPage(String hql, Object[] objs) { int page; Session session = this.getHibernateTemplate().getSessionFactory() .openSession(); try { Query query = session.createQuery(hql); for (int i = 0, n = objs.length; i < n; i++) { query.setParameter(i, objs[i]); } Integer count = (Integer) query.uniqueResult(); int pg = 35; int p = count % pg; page = count / pg; if (p > 0) { page++; } return page; } catch (Exception e) { e.printStackTrace(); return 0; } finally { if (session.isOpen()) { session.close(); } } } /** * 模糊查询结果分页 * * @param hql * @param objs * [] * @param page * @return list */ @SuppressWarnings("unchecked") public List<T> getBlurredList(String hql, Object[] objs, int page) { Session session = this.getHibernateTemplate().getSessionFactory() .openSession(); try { Query query = session.createQuery(hql); if (null != objs) { for (int i = 0, n = objs.length; i < n; i++) { query.setParameter(i, objs[i]); } } query.setFirstResult((page - 1) * 35); query.setMaxResults(35); List<T> list = query.list(); return list; } catch (RuntimeException e) { e.printStackTrace(); return null; } finally { if (session.isOpen()) { session.close(); } } } /** * 模糊查询 * * @param hql * @param objs * @param page * @return */ @SuppressWarnings("unchecked") public List<T> getGuessList(String hql, Object[] objs) { Session session = this.getHibernateTemplate().getSessionFactory() .openSession(); try { Query query = session.createQuery(hql); if (null != objs) { for (int i = 0, n = objs.length; i < n; i++) { query.setParameter(i, objs[i]); } } List<T> list = query.list(); return list; } catch (RuntimeException e) { e.printStackTrace(); return null; } finally { if (session.isOpen()) { session.close(); } } } /** * 非空验证 * * @param objs * [] * @param hql * @return boolean */ @SuppressWarnings("unchecked") public boolean cbObjs(Object[] objs, String hql) { boolean flag = false; try { List<T> list = getHibernateTemplate().find(hql, objs); flag = list.size() > 0 ? true : false; } catch (RuntimeException e) { flag = false; e.printStackTrace(); } finally { if (getSession().isOpen()) { getSession().close(); } } return flag; } /** * 更新单个对象 * * @param Object */ public void updateEntity(T o) { getHibernateTemplate().saveOrUpdate(o); if (getSession().isOpen()) { getSession().close(); } } public Double getDouble(String hql, Object[] objs) { Double c = (Double) getHibernateTemplate().find(hql, objs).get(0); if (getSession().isOpen()) { getSession().close(); } return c; } }
web.xml
<context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath*:applicationContext.xml</param-value> </context-param> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener>
strustConfig.xml
<action attribute="" input="/.jsp" name="Form" path="/" scope="request" type="org.springframework.web.struts.DelegatingActionProxy"> <forward name="" path="/.do?doType=all" /> </action> <!-- Spring插件 --> <plug-in className="org.springframework.web.struts.ContextLoaderPlugIn"> <set-property property="contextConfigLocation" value="classpath:applicationContext.xml" /> </plug-in>
applicationContext.xml
<!-- 注入GenericDAO --> <bean id="genericdao" class="com.topzh.persists.daoimpl.GenericDaoImpl"> <property name="sessionFactory"> <ref bean="SessionFactory" /> </property> </bean> <!-- 注入Biz --> <bean id="biz" class="bizimpl.BizImpl"> <constructor-arg> <ref bean="genericdao" /> </constructor-arg> </bean>
BizImpl.class
GenericDao dao; public BizImpl(GenericDao dao) { this.dao = dao; }
相关推荐
【GenericDAO】是一种在Java开发中常见的设计模式,主要用于数据库操作。它提供了一种泛型化的数据访问对象(DAO)实现,旨在简化DAO层的编码工作,提高代码的可复用性和可维护性。在传统的DAO实现中,每个实体类都...
标题中的“基于Hibernate+Spring 泛型GenericDao”的工程源码指的是一个整合了Spring框架和Hibernate ORM技术的项目,其中使用了泛型设计模式来实现数据访问对象(DAO)。这个项目可能旨在提供一种通用、可复用且...
实测可用
实测可用
实测可用
实测可用
实测可用
实测可用
实测可用
实测可用
实测可用
实测可用
实测可用
实测可用
实测可用
实测可用
实测可用
实测可用
实测可用
实测可用