JavaEE 3层架构的 DAO, Service, Web 简单封装
2009-11-17 00:00:00 来源:WEB开发网基于 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: }
更多精彩
赞助商链接