public List<OnlineCustomerInforDTO> getOnlineMembersByTime(String beginTime, String endTime) {
final String hql = "select coi.email, count(coi.id) as onlineTimes from CustomerOnlineInfor coi where coi.beginDate between '"
+ beginTime + "' and '" + endTime + "' group by coi.email ";
List<OnlineCustomerInforDTO> onlineDTOList = null;
onlineDTOList = (List<OnlineCustomerInforDTO>) hibernateTemplate.execute(new HibernateCallback() {
public Object doInHibernate(Session session) throws HibernateException, SQLException {
List<OnlineCustomerInforDTO> onlineDTOListtemp = new ArrayList<OnlineCustomerInforDTO>();
Query query = session.createQuery(hql); //由session执行hql语句,返回Query类型对象
//for 循环获取query的值并存入OnlineCustomerInforDTO对象中,然后将OnlineCustomerInforDTO对象add到list中
// 然后返回 list
for(Object o : query.list()) {
Object[] array = (Object[])o;
OnlineCustomerInforDTO onlineDTO = new OnlineCustomerInforDTO();
onlineDTO.setEmail(array[0].toString());
onlineDTO.setOnlineTimes(Long.parseLong(array[1].toString()));
onlineDTOListtemp.add(onlineDTO);
}
return onlineDTOListtemp;
}
});
return onlineDTOList;
}