我想求出结果集的记录数,哪个方法好? 我按hql语句已经查询得到了结果集,存在了List<News> newsList里。方法1:利用SELECT COUNT(*)...方法可以得到记录数;方法2:newsList.size()方法值和方法1的值相等。如果我想进行分页的话,需要用到记录数,请问用哪个方法好? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 已经查询到LIST里了 当然就用方法2了 当然是方法1。因为你在分页的过程中,根本就不用先查询出所有,那样效率很底(在数据很多的情况下),所有要使用sql语句查询一共有多少条数据速度要快, 都不好你的好象是查出来放到缓存再分这样效率高些每页显示多少每次就查多少hibernate有分页机制Query query = session.createQuery("from table"); query.setFirstResult(1); query.setMaxResults(10); 还用问么!带分页就需要显示。不显示INFO就第一种了。list 里面只不过是一个size 字段而已,咔嚓就查出来。 一般用到第二个。为什么,因为第一个用的话,总是从数据库中去取,增加了访问频率,降低了程序的运行效率。第二种,你可以将查询到得结果,可以放到作用域中如request,session中当下次在用的时候,就到作用域中直接去取就可以了,就不要在访问数据库了,即使没有查到数据,list.size()都不会报空指针异常,只会为0。 CREATE PROCEDURE proc_Page@first INT, --开始数据(例如:从某页第一条数据)@second INT --结束数据(例如:从某页最后一条数据)ASSELECT * FROM (SELECT ROW_NUMBER() OVER (ORDER BY RID) as accp,* FROM bbsReply) AS APTECHWHERE accp BETWEEN @first AND @secondGO分页存储过程新函数么就的用 如果想进行分页的话,那newsList.size()得到的只是当页的记录条数啊,获取全部的还是用count(*)吧 肯定是方法1不能用方法2,如果数据量大的时候,用方法2把结果集转成LIST会造成JVM内存溢出 关于spring集成hibernate的问题 我写了一个触发器,请问在Java里怎样调用? hibernate的生成策略中的native SQL DEFAULT 约束? JSP怎么将脚本的内容加到List集合中 请问正则表达式如何匹配多个字符串? tomcat能启动,但是就是打不开网页;Google看了都不管用 HQL 在Struts2.0的拦截器中怎么过滤所有Action的model中的的非法字符,比如HTML 工具Eclipse 用echarts js JS一直获取不到get 报错 使用jdom保存的问题 问一个struts2取得URL中参数的特别弱智的问题...
你的好象是查出来放到缓存再分
这样效率高些每页显示多少每次就查多少
hibernate有分页机制
Query query = session.createQuery("from table");
query.setFirstResult(1);
query.setMaxResults(10);
当下次在用的时候,就到作用域中直接去取就可以了,就不要在访问数据库了,
即使没有查到数据,list.size()都不会报空指针异常,只会为0。
@first INT, --开始数据(例如:从某页第一条数据)
@second INT --结束数据(例如:从某页最后一条数据)
AS
SELECT * FROM
(
SELECT ROW_NUMBER() OVER (ORDER BY RID) as accp,* FROM bbsReply) AS APTECH
WHERE accp BETWEEN @first AND @second
GO
分页存储过程新函数么就的用