WEB开发网
开发学院软件开发Java JavaEE 3层架构的 DAO, Service, Web 简单封装 阅读

JavaEE 3层架构的 DAO, Service, Web 简单封装

 2009-11-17 00:00:00 来源:WEB开发网   
核心提示: 基于 Spring 封装的 Hibernate DAO 抽象实现AbstractSpringDAO<T, ID extends Serializable>1:importjava.io.Serializable;2:importjava.sql.SQLException;3:impo

基于 Spring 封装的 Hibernate DAO 抽象实现

AbstractSpringDAO<T, ID extends Serializable>

   1:  import java.io.Serializable;
   2:  import java.sql.SQLException;
   3:  import java.util.Collection;
   4:  import java.util.List;
   5:   
   6:  import org.hibernate.Criteria;
   7:  import org.hibernate.HibernateException;
   8:  import org.hibernate.Session;
   9:  import org.hibernate.criterion.Projections;
  10:  import org.springframework.orm.hibernate3.HibernateCallback;
  11:  import org.springframework.orm.hibernate3.HibernateTemplate;
  12:   
  13:  /**
  14:   * 基于 Spring Hibernate 的DAO
  15:   * 
  16:   * @author Hacker-TTAO
  17:   * 
  18:   * @param <T>
  19:   * @param <ID>
  20:   */
  21:  public abstract class AbstractSpringDAO<T, ID extends Serializable> extends AbstractGeneralDAOImpl<T, ID> {
  22:   
  23:      private HibernateTemplate hibernateTemplate;
  24:   
  25:      public HibernateTemplate getHibernateTemplate() {
  26:          return hibernateTemplate;
  27:      }
  28:   
  29:      public void setHibernateTemplate(HibernateTemplate hibernateTemplate) {
  30:          this.hibernateTemplate = hibernateTemplate;
  31:      }
  32:   
  33:      public List<T> findAll() {
  34:          return getHibernateTemplate().loadAll(getPersistenceClass());
  35:      }
  36:   
  37:      public T findByID(ID id) {
  38:          return (T) getHibernateTemplate().get(getPersistenceClass(), id);
  39:      }
  40:   
  41:      public void delete(T entity) {
  42:          getHibernateTemplate().delete(entity);
  43:      }
  44:   
  45:      public void delete(Collection<T> entities) {
  46:          getHibernateTemplate().deleteAll(entities);
  47:      }
  48:   
  49:      public void marge(T eneity) {
  50:          getHibernateTemplate().merge(eneity);
  51:      }
  52:   
  53:      public void marge(T... eneity) {
  54:      }
  55:   
  56:      public T save(T entity) {
  57:          getHibernateTemplate().save(entity);
  58:          return entity;
  59:      }
  60:   
  61:      public void save(T... entity) {
  62:      }
  63:   
  64:      public void saveOrUpdate(T entity) {
  65:          getHibernateTemplate().saveOrUpdate(entity);
  66:      }
  67:   
  68:      public void saveOrUpdate(Collection<T> entities) {
  69:          getHibernateTemplate().saveOrUpdate(entities);
  70:      }
  71:   
  72:      public T update(T entity) {
  73:          getHibernateTemplate().update(entity);
  74:          return entity;
  75:      }
  76:   
  77:      public void update(Collection<T> entity) {
  78:      }
  79:   
  80:      public int getCount() {
  81:          Object obj = getHibernateTemplate().execute(new HibernateCallback() {
  82:              public Object doInHibernate(Session session) throws HibernateException, SQLException {
  83:                  Criteria c = session.createCriteria(getPersistenceClass());
  84:                  c.setProjection(Projections.rowCount());
  85:                  return c.uniqueResult();
  86:              }
  87:          });
  88:          return Integer.parseInt(obj.toString());
  89:      }
  90:   
  91:      public void delete(ID id) {
  92:          T entity = findByID(id);
  93:          delete(entity);
  94:      }
  95:  }

上一页  1 2 3 4 5 6 7  下一页

Tags:JavaEE 架构 DAO

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接