原公司的方法就是先用sql带出满足相关条件的全部数据(全部),后遍历结果集将记录放在一个arrayList中,随后根据要提取的数据记录数和页数,再提取一个arrayList供显示用.
自己看着都觉的很烂.请高手帮忙

解决方案 »

  1.   

    第一步我觉得没有什么问题,就算不放到arrayList里,也要放到自定义类数组或HashMap数组中,之后存入session,只是第二步再提取一个arrayList恐怕有些多余
      

  2.   

    另外性能差会不会是SQL语句的问题
      

  3.   

    sql语句再怎么差也就是带出全部数据,可优化的余地我觉的很少,而相对来说,jdbc部分余地很大,因为,我们公司的做法是将所有的数据先放在一个arraylist中,要知道记录一多的话,这个arraylist消耗得资源就厉害了
      

  4.   

    同意 bloomdeng(肯)
    用一个游标控制arraylist
    不就可以了吗?
    再提取arraylist做什么?
    不知道谁能提供基于数据
    库的分页方法!
    关注!!!
      

  5.   

    fantasyCoder大哥提及的游标控制arraylist,能否详细一点呢?
      

  6.   

    再提取一个arraylist的作用就是提供页面显示,这样jsp页面只要循环遍历这个arraylist就可以了
      

  7.   

    我的方法是写一个分页Bean,将要查询的记录放在容器里!
    用一个循环来控制要显示的记录数
    第一次从index个记录开始
    第二次从第2次从index+你要显示的记录数
    再调整index
    这样第一次读取数据库可能会有些慢!应该不是什么好办法!!!
      

  8.   

    我的做法是先将数据读进HashMap数组,之后分页Bean只是根据页数和每页的记录数设定数据起始位和数据中止位,jsp页面循环的时候从数据起始位循环到数据中止位就可以了
      

  9.   

    凡是这样做的"用sql带出满足相关条件的全部数据(全部)",这次面试估计全砸。只要传入参数
    1 sql 查询条件,前后要一致
    2 pageNo 要的第几页
    3 offset 一页多少条就行了
    当然要考虑不同数据库不同的语句,考虑可移植性,用配置文件/web parameter
      

  10.   

    小弟才疏学浅不能理解
    只要传入参数
    1 sql 查询条件,前后要一致
    2 pageNo 要的第几页
    3 offset 一页多少条就行了
    当然要考虑不同数据库不同的语句,考虑可移植性,用配置文件/web parameter
    这段话,还望高手指点
      

  11.   

    搂主要好好理解bdsc()讲的一番话,你的面试我认为也是砸在"用sql带出满足相关条件的全部数据(全部)"里面了。你的方法在小型数据库中会有任何问题,但当你取出的数据集在几十万乃至几百万以上记录的时候,你可以想想后果会怎样。因此,放入arraylist的结果集必须是最少的。否则,其资源的消耗和遍历时候的时耗将直接决定了你的程序不可能作为中高端应用。
      

  12.   

    分页问题其实跟数据库也有一点关系,sqlserver好像勇一个叫rowtop,好像是这个吧,就可以直接在符合你查询条件的记录中取出你的一页显示的记录数。而在oracle中就得限定rowid的大小。至于其他数据库偶不了解。但这方面问题我觉得最先考虑的应该是速度问题,即如需查出两万条然后分页该怎样保持速度,然后才能考虑其他如系统占用情况等等。而速度的解决我想应该是对查询方法的限定。数据分页的问题在大富翁论坛中有过过多的讨论,建议搂主可以去看一下,不过大富翁论坛讨论的都是与delphi有关的东东。
      

  13.   

    凡是这样做的"用sql带出满足相关条件的全部数据(全部)",这次面试估计全砸。只要传入参数
    1 sql 查询条件,前后要一致
    2 pageNo 要的第几页
    3 offset 一页多少条就行了
    当然要考虑不同数据库不同的语句,考虑可移植性,用配置文件/web parameter这个好象是用到 STRUTS了吧
      

  14.   

    bdsc() 的意思是使用SQL语句就出来了
    但只是MYSQL支持,象MS SQLSERVER就不支持!
    select * from table where 条件 limit pageNum*offset,offset就OK了!
      

  15.   

    这段sql文怎么实现的?我底子不好,具体些啊
    select * from table where 条件 limit pageNum*offset,offset我也觉得外一是许多条记录用arraylist废了点,我们这也是,先执行sql文(条件始终不变查所有数据)
    while(本页页数×本页条数<数据<(本页页数+1)×本页条数)
    把这中间的数据放入显示bean中。
    有高人能指点更好的方法么?
      

  16.   

    忘记说了我们用vector对象放入显示bean,不知换个容器能好些不?
      

  17.   

    关于分页其实大家可以参考j2ee-tutorial的分页技术
     大家觉得用page的taglib怎么样啊?