我按hql语句已经查询得到了结果集,存在了List<News> newsList里。
方法1:利用SELECT COUNT(*)...方法可以得到记录数;
方法2:newsList.size()方法值和方法1的值相等。如果我想进行分页的话,需要用到记录数,请问用哪个方法好?

解决方案 »

  1.   

    已经查询到LIST里了 当然就用方法2了
      

  2.   

    当然是方法1。因为你在分页的过程中,根本就不用先查询出所有,那样效率很底(在数据很多的情况下),所有要使用sql语句查询一共有多少条数据速度要快,
      

  3.   

    都不好
    你的好象是查出来放到缓存再分
    这样效率高些每页显示多少每次就查多少
    hibernate有分页机制
    Query query = session.createQuery("from table"); 
    query.setFirstResult(1); 
    query.setMaxResults(10); 
      

  4.   

    还用问么!带分页就需要显示。不显示INFO就第一种了。list 里面只不过是一个size 字段而已,咔嚓就查出来。
      

  5.   

    一般用到第二个。为什么,因为第一个用的话,总是从数据库中去取,增加了访问频率,降低了程序的运行效率。第二种,你可以将查询到得结果,可以放到作用域中如request,session中
    当下次在用的时候,就到作用域中直接去取就可以了,就不要在访问数据库了,
    即使没有查到数据,list.size()都不会报空指针异常,只会为0。
      

  6.   

    CREATE PROCEDURE proc_Page
    @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
    分页存储过程新函数么就的用
      

  7.   

    如果想进行分页的话,那newsList.size()得到的只是当页的记录条数啊,获取全部的还是用count(*)吧
      

  8.   

    肯定是方法1不能用方法2,如果数据量大的时候,用方法2把结果集转成LIST会造成JVM内存溢出