hibernate使用group by,having實現統計功能

 1、 Hibernate group by 和having

hql語句如下,

Object[] pramas ={ timeBegin ,timeEnd,mincount ,maxcount};
   return syslogDao.findForPage("select username ,count(id) , max(createtime) from  Syslog " +
     " where  createtime > ? and createtime < ? " +
     "group by username having count(id) > ? and count(id) < ?", pramas ,pageSize ,page);

 

前臺使用struts2標籤取值,需要注意定義id="list"


2 、hibernate的select 讀取結果集的兩種顯示方法

 

 hibernate中用select讀取的結果,返回的是一個List。我們可以直接調用,但是不是很方便,很晦澀。比如我們執行一條select語句,"selectcount(id),user_name from content group byuser_name",執行後返回一個List。前臺假設我們用strut2的一個標籤:<s:iteratorvalue="#request.list"id="list">姓名:<s:propertyvalue="#list[1]"/>數量:<s:propertyvalue="#list[0]"/></s:iterator>
   我覺得用Map的list更方便一些。
              Object[]obj;
List newList = new ArrayList();
for(int i=0;i<list.size();i++){ 
Map map = new HashMap();  
       obj = (Object[])list.get(i); 
       map.put("count", obj[0]); 
      map.put("username", obj[1]); 
       newList.add(map);  
              }  
      model.addAttribute("list", newList);
前臺調用:<s:iteratorvalue="#request.list"id="list">姓名:<s:propertyvalue="#list.username"/>數量:<s:propertyvalue="#list.count"/></s:iterator>



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章