SSH与SSM学习之SSH实现CRM练习03——客户列表03_CustomerDao
一、CustomerDao
根据前面的分析,我们需要提供两个方法,如下
1.1 CustomerDao
package com.qwm.ssh_crm.dao;
import com.qwm.ssh_crm.domain.Customer;
import org.hibernate.criterion.DetachedCriteria;
import java.util.List;
/**
* @author:qiwenming
* @date:2017/11/5 0005 0:53
* @description:
*/
public interface CustomerDao {
//查询总记录数
Integer getTotalCount(DetachedCriteria dc);
//查询分页数据
List<Customer> getPageList(DetachedCriteria dc, int start, Integer pageSize);
}
1.2 CustomerDaoImpl
package com.qwm.ssh_crm.dao.impl;
import com.qwm.ssh_crm.dao.CustomerDao;
import com.qwm.ssh_crm.domain.Customer;
import org.hibernate.criterion.DetachedCriteria;
import org.hibernate.criterion.Projections;
import org.springframework.orm.hibernate5.support.HibernateDaoSupport;
import java.util.List;
/**
* @author:qiwenming
* @date:2017/11/5 0005 0:55
* @description:
*/
public class CustomerDaoImpl extends HibernateDaoSupport implements CustomerDao {
@Override
public Integer getTotalCount(DetachedCriteria dc) {
//1.设置查询条件
//2.查询
//3.清空设置的聚合函数
//4.判断返回
dc.setProjection(Projections.rowCount());
List<Long> list = (List<Long>)getHibernateTemplate().findByCriteria(dc);
dc.setProjection(null);
if(list!=null && list.size()>0){
return list.get(0).intValue();
}
return null;
}
@Override
public List<Customer> getPageList(DetachedCriteria dc, int start, Integer pageSize) {
List<Customer> list = (List<Customer>) getHibernateTemplate().findByCriteria(dc,start,pageSize);
return list;
}
}
二、Spring配置中添加CustomerDao的配置
书写好上面的Dao以后,在 Spring的配置文件中如下添加配置
<bean name="customerDao" class="com.qwm.ssh_crm.dao.impl.CustomerDaoImpl">
<property name="sessionFactory" ref="sessionFactory"/>
</bean>