SSH 프레임워크:dao 레이어 공통 인터페이스 및 상위 클래스 추출
4422 단어 SSH 프레임워크
BaseDaoImpl.java
public class BaseDaoImpl<T> extends HibernateDaoSupport implements BaseDao<T>{
//
private Class clazz;
public BaseDaoImpl(){
// this ,c CustomerDaoImpl Class
Class c = this.getClass();
// CustomerDaoImpl extends BaseDaoImpl map
// 2 : BaseDaoImpl
Type type = c.getGenericSuperclass();
// : type
if(type instanceof ParameterizedType){
ParameterizedType ptype = (ParameterizedType) type;
// Customer
Type[] types = ptype.getActualTypeArguments();
this.clazz = (Class) types[0];
}
}
/**
*
*/
public void save(T t) {
this.getHibernateTemplate().save(t);
}
/**
*
*/
public void delete(T t) {
this.getHibernateTemplate().delete(t);
}
/**
*
*/
public void update(T t) {
this.getHibernateTemplate().update(t);
}
/**
*
*/
public T findById(Long id) {
return (T) this.getHibernateTemplate().get(clazz, id);
}
/**
*
*/
public List findAll() {
return (List) this.getHibernateTemplate().find("from "+clazz.getSimpleName());
}
/**
*
*/
public PageBean findByPage(Integer pageCode, Integer pageSize, DetachedCriteria criteria) {
//
PageBean page = new PageBean();
//
page.setPageCode(pageCode);
page.setPageSize(pageSize);
// :SQL select count(*) from
criteria.setProjection(Projections.rowCount());
List list = (List) this.getHibernateTemplate().findByCriteria(criteria);
if(list != null && list.size() > 0){
int totalCount = list.get(0).intValue();
//
page.setTotalCount(totalCount);
}
// SQL select * from xxx
criteria.setProjection(null);
List beanList = (List) this.getHibernateTemplate().findByCriteria(criteria, (pageCode-1)*pageSize, pageSize);
//
page.setBeanList(beanList);
return page;
}
}
페이지 나누기 쿼리 PageBean 플러그인http://blog.csdn.net/mozha_666/article/details/79301334