@RequestMapping(value = "/FeedPager.cqzk")
@ResponseBody
public String url_sa1(HttpServletRequest request, BootPage page)
throws ServletException, IOException, RuntimeException {
@SuppressWarnings("unchecked")
BootPage pager = feedBackDao.getBySQLPage("select Feedback.id,Feedback.title,Feedback.content," +
"Feedback.creattime,Rms_User.user_name from t_Feedback Feedback,Rms_User where Feedback.userId = Rms_User.user_id ", page, null);
System.out.println((JSONArray.fromObject(pager)).getString(0).toString());
System.out.println((JSONArray.fromObject(pager)).getString(0).toString());
return (JSONArray.fromObject(pager)).getString(0).toString();
}
public BootPage getBySQLPage(String hql,BootPage pager,Map condition){
if (pager == null) {
throw new IllegalArgumentException("分页 不能为空!");
}
//如果不通过ALIAS_TO_ENTITY_MAP转换,就没有字段头。如name:hujingtao,就只有hujingtao。不便于取出
Query q = sessionFactory.getCurrentSession().createSQLQuery(hql).setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);;
q.setFirstResult(pager.getOffset());
q.setMaxResults(pager.getLimit());
if(condition!=null){
Iterator> iter = condition.keySet().iterator();
while (iter.hasNext()) {
String paramName = (String) iter.next();
Object paramValue = condition.get(paramName);
q.setParameter(paramName, paramValue);
}
}
pager.setRows(q.list());
pager.setTotal(this.countAllSQL(hql,condition));
return pager;
}
protected Long countAllSQL(String hql, Map condition) {
if (hql == null) {
return 0l;
}
String sql = " select count(*) total from ( " + hql + " ) as temp ";
Query q = sessionFactory.getCurrentSession().createSQLQuery(sql);
if(condition!=null){
Iterator> iter = condition.keySet().iterator();
while (iter.hasNext()) {
String paramName = (String) iter.next();
Object paramValue = condition.get(paramName);
q.setParameter(paramName, paramValue);
}
}
//返回的是Integer对象 需要转换
return new Long(((Integer) q.uniqueResult()).intValue());
}