SSH开发-BaseDAO

在SSH开发中,对数据库查询可以抽象出一个父类,包含所有可能用到的查询方法。代码中我写的一个BaseDAO,整理了几个常用的方法,子类DAO中可以使用super关键字调用。



public
package com.dao.impl; import java.sql.SQLException; import java.util.List; import java.util.Map; import org.hibernate.Criteria; import org.hibernate.HibernateException; import org.hibernate.Session; import org.hibernate.criterion.Restrictions; import org.springframework.orm.hibernate3.HibernateCallback; import org.springframework.orm.hibernate3.support.HibernateDaoSupport; import com.util.Page; import com.util.PageBean; /** * @function 增删改查、翻页效果 * @author hxy * @version 2013-3-31 17:13:50 */ public abstract class BaseDAO extends HibernateDaoSupport { /** * @function 创建一个对象 * @version 2012-7-13 13:34:35 */ public void create(Object entity) { try { getHibernateTemplate().save(entity); } catch (Exception e) { e.printStackTrace(); } } /** * @function 更新一个对象 * @version 2012-7-13 13:34:35 */ public void update(Object entity) { try { getHibernateTemplate().update(entity); } catch (Exception e) { e.printStackTrace(); } } /** * @function 删除一个对象 * @version 2012-7-13 13:34:35 */ public void delete(Object entity) { try { getHibernateTemplate().delete(entity); } catch (Exception e) { e.printStackTrace(); } } /** * @function 根据条件查找单个对象 * @version 2012-7-13 13:34:35 */ @SuppressWarnings({ "rawtypes", "unchecked" }) protected Object loadByKey(final Class clazz, final String key, final Object val) { return getHibernateTemplate().execute(new HibernateCallback() { public Object doInHibernate(Session session) throws HibernateException, SQLException { Criteria criteria = session.createCriteria(clazz, "clazz"); criteria.add(Restrictions.eq("clazz." + key, val)); List result = criteria.list(); if (result != null && result.size() > 0) { return result.get(0); } else { return null; } } }); } /** * @function 无条件查询所有结果集 * @version 2012-7-13 13:34:35 */ @SuppressWarnings("rawtypes") protected List loadAll(Class clazz) { List result = getHibernateTemplate().find("from " + clazz.getName()); if (result != null && result.size() > 0) { return result; } else { return null; } } /** * @function 根据单一条件返回查询结果集 * @version 2012-7-13 13:34:35 */ @SuppressWarnings("rawtypes") protected List loadAllByKey(Class clazz, String keyName, Object keyValue) { List result = getHibernateTemplate().find( "from " + clazz.getName() + " clazz" + " where " + "clazz." + keyName + "=" + "'" + keyValue + "'"); if (result != null && result.size() > 0) { return result; } else { return null; } } /** * @function 删除所有对象 * @version 2012-7-13 13:34:35 */ @SuppressWarnings("rawtypes") protected void deleteAll(Class clazz) { getHibernateTemplate().deleteAll( getHibernateTemplate().find("from " + clazz.getName())); } /** * @function 删除所有对象 * @version 2012-7-13 13:34:35 */ @SuppressWarnings("rawtypes") protected void deleteAllList(List list) { getHibernateTemplate().deleteAll(list); } /** * @function 无条件翻页查找全部 * @version 2013-3-31 13:45:56 */ @SuppressWarnings({ "rawtypes", "unchecked" }) protected PageBean loadAllPage(final Class clazz, final Page page) { return getHibernateTemplate().execute(new HibernateCallback() { public Object doInHibernate(Session session) throws HibernateException, SQLException { Criteria criteria = session.createCriteria(clazz); page.setTotalItems(criteria.list().size()); criteria.setFirstResult(page.getBeginItem()); criteria.setMaxResults(page.getPageSize()); return new PageBean(page, criteria.list()); } }); } /** * @function 有条件查询翻页效果所有结果集 * @param clazz * @param page * @param map * @return PageBean */ @SuppressWarnings({ "rawtypes", "unchecked" }) protected PageBean loadAllByKeyPage(final Class clazz, final Page page, final Map<String, Object> map) { return getHibernateTemplate().execute(new HibernateCallback() { public Object doInHibernate(Session session) throws HibernateException, SQLException { Criteria criteria = session.createCriteria(clazz, "clazz"); criteria.add(Restrictions.allEq(map)); page.setTotalItems(criteria.list().size()); criteria.setFirstResult(page.getBeginItem()); criteria.setMaxResults(page.getPageSize()); return new PageBean(page, criteria.list()); } }); } /** * @function 根据多个条件查询单个对象 * @version 2013-3-31 15:02:08 */ @SuppressWarnings({ "rawtypes", "unchecked" }) protected Object loadByKey(final Class clazz, final Map<String, Object> map) { return getHibernateTemplate().execute(new HibernateCallback() { public Object doInHibernate(Session session) throws HibernateException, SQLException { Criteria criteria = session.createCriteria(clazz, "clazz"); criteria.add(Restrictions.allEq(map)); List result = criteria.list(); if (result != null && result.size() > 0) { return result.get(0); } else { return null; } } }); } /** * @function 根据多个查询条件返回结果集 * @version 2013-3-31 15:02:02 */ @SuppressWarnings({ "rawtypes", "unchecked" }) protected List loadAllByKey(final Class clazz, final Map<String, Object> map) { return getHibernateTemplate().execute(new HibernateCallback() { public Object doInHibernate(Session session) throws HibernateException, SQLException { Criteria criteria = session.createCriteria(clazz, "clazz"); criteria.add(Restrictions.allEq(map)); List result = criteria.list(); if (null == result || 0 == result.size()) { return null; } else { System.out.println("查询结果:"+result.size()); return result; } } }); } /** * @function 根据多个查询条件返回结果集 * @version 2013-3-31 15:02:02 */ @SuppressWarnings({ "rawtypes", "unchecked" }) protected List loadAllByKeyOrByKey(final Class clazz, final Map<String, Object> map,final Map<String, Object> map2) { return getHibernateTemplate().execute(new HibernateCallback() { public Object doInHibernate(Session session) throws HibernateException, SQLException { Criteria criteria = session.createCriteria(clazz, "clazz"); criteria.add(Restrictions.or(Restrictions.allEq(map), Restrictions.allEq(map2))); List result = criteria.list(); if (null == result || 0 == result.size()) { return null; } else { System.out.println("或者查询结果:"+result.size()); return result; } } }); } }

 

posted @ 2013-05-25 10:32  neuhxy  阅读(381)  评论(0编辑  收藏  举报