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>