怎样用HQL语句查询出点击率前十的记录?(数据库是mysql,表名Answer ,点击率clickcount)
解决方案 »
- 请教个DIV问题
- spring 代理的jms监听类如何启动
- ****100分求一个较好较全的UBB代码Java转换程序,既将UBB代码转换成相应的html代码
- 送100分--请高手讲解指教!!!
- jsp中嵌入swf视频,在ie下不能动态改变embed中src问题
- weblogic的简单问题
- 急,JSP和MySQL连接问题,分可以多给!!!!!
- 新手求助!这样的错误怎么解决 A Servlet Exception Has Occurred
- 一个关于applet存放路径的问题!
- 请教,<input name="t1" type="text" size="80" value="<%=rs.getString(1)%>">有什么错误!!数据库也是连接对的!
- javax.naming.NoInitialContextException
- 【问】在使用Dwr时web.xml文件的配置疑惑
query.setMaxResult(10);List list = query.list();
先查询所有的记录,然后分个10条进来!
String hql="from Answer order by clickcount desc";
Query query=session.createQuery(hql);
query.setFirstResult(0);
query.setMaxResults(10);
return query.list();
这只是一种思路,别见笑啊!
query.setMaxResult(10);List list = query.list();这样看起来舒服些,呵呵。。一般都是采用分页的方法来获取前几条数据
not in(select top (页数量-1)一页显示条数 ID(自动增加列) from 表名 where ID(自动增加列) desc ) and ID(自动增加列) desc 例:
查找前十条最新新闻 第一页
select top 10 * from newInfo where newID not in (select top 10 newID from newInfo newID desc ) and newID desc 第二页select top 10 * from newInfo where newID not in (select top (2-1)*10 newID from newInfo newID desc ) and newID desc
Query query = session.createSQLQuery(" select top 10 * from newInfo where newID not in (select top 10 newID from newInfo newID desc ) and newID desc "); //用本地sql可以不
Query query=session.createQuery(hql);
query.setFirstResult(0);
query.setMaxResult(10);
List list=query.list();无意中,发现一个重大问题
setMaxResult少了个s也
应该是setMaxResults
应该改成这样Java codeString hql="from Answer a order by a.clickcount desc";
Query query=session.createQuery(hql);
query.setFirstResult(0);
query.setMaxResults(10);
List list=query.list();
就是用的 limit 实现的,这里不能用具体的关键字,
这样也是方便数据库移植
而hibernate是通过配置文件就可以配置不同数据库,所以通用性的东西都会有,
hibernate中内置执行sql的方法,具体是哪个忘了,google一下应该就可以找到,
实在不行就可以自己写sql,1年前用过hibernate,记得是这样的。
Query query=session.createQuery(hql);
query.setFirstResult(0);
query.setMaxResult(10);
List list=query.list(); 就是这种来控制结果数量