日期:2014-05-16 浏览次数:20385 次
/** * 获取符合查询条件的记录总数 * @param detachedCriteria hibernate Criteria 查询对象,由service组装 * @return */ public Long getRecordCount(final DetachedCriteria detachedCriteria) { return (Long) getHibernateTemplate().execute(new HibernateCallback() { public Object doInHibernate(Session session) throws HibernateException { Criteria criteria = detachedCriteria .getExecutableCriteria(session); long count = Long.parseLong((criteria.setProjection(Projections .rowCount()).uniqueResult()).toString()); criteria.setProjection(null); return Long.valueOf("" + count); } }, true); } /** * 获取符合条件的查询记录 * @param detachedCriteria * @param startResult * @param limitResult * @return */ public List listByConditions(final DetachedCriteria detachedCriteria, final int startResult, final int limitResult) { return (List) getHibernateTemplate().execute(new HibernateCallback() { public Object doInHibernate(Session session) throws HibernateException { Criteria criteria = detachedCriteria .getExecutableCriteria(session); criteria.setFirstResult(startResult); criteria.setMaxResults(limitResult); return criteria.list(); } }, true); }
/** * 获取所有日志列表 * @param startResult 查询记录起点 * @param limitResult 简要列表每页最大记录数 * @param sortRecord 简要列表排序字段名 * @param dirRecord 简要列表排序类型 DESE/ASC * @return */ public JSONArray getAllLogs(String startResult,String limitResult, String sortRecord,String dirRecord) { try { DetachedCriteria detachedCriteria = DetachedCriteria.forClass(TDeasLog.class); if(dirRecord.equals("ASC")) detachedCriteria.addOrder(Order.asc(sortRecord)); else detachedCriteria.addOrder(Order.desc(sortRecord)); Long count = logDAO.getRecordCount(detachedCriteria);//获取符合条件的记录总数 List list = logDAO.listByConditions(detachedCriteria, Integer.parseInt(startResult), Integer.parseInt(limitResult));//获取符合条件记录 if(list.size()>0){ List jsonlist = new ArrayList(); Iterator it = list.iterator(); while (it.hasNext()){ Log log = (Log )it.next(); Map map = new HashMap(); map.put("taskId", log .getTaskId()); map.put("rwfssj", log .getRwfssj()); map.put("rwjssj", log .getRwjssj()); .... jsonlist.add(map); } Map m = new HashMap(); m.put("results", count.toString()); m.put("rows", jsonlist); JSONArray jsonArray = JSONArray.fromObject(m); return jsonArray; }else return null; } catch (Exception e) { e.printStackTrace(); return null; } }
public ActionForward getAllLogs(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { String startResult = request.getParameter("start"); String limitResult = request.getParameter("limit"); String sortRecord = request.getParameter("sort"); String dirRecord = request.getParameter("dir"); JSONArray jsonArray = this.getLogService().getAllLogs(startResult,limitResult,sortRecord,dirRecord); if(jsonArray != null){ String jsonstr = jsonArray.toString(); //去除JSON对象前的[] String json = jsonstr.substring(1, jsonstr.length()-1); response.setContentType("text/json; charset=utf-8"); try { response.getWriter().print(json); } catch (IOException e) { log.error("获取日志实例列表失败,异常:"+e.getMessage()); } }else{//返回空数据,格式:{"rows":[],"results":"0"} List list = new ArrayList(); Map map1 = new HashMap(); list.add(map1); Map m = new HashMap(); m.put("results", "0"); m.put("rows", list);