表中数据量比较大,想控制,
每次100条,分100次取出,
请教Java中如何实现啊?!

解决方案 »

  1.   

    首先得知道什么数据库啊,针对的方法是不同的。
    一般用的mysql:select * from tableName limit start_num,every_page_items
    (tableName指你要读取的数据库表名字,start_num查询的初始位置,every_page_items就是你要设置的每次取出的条目数:如第一次得到第1-100条信息时,start_num用0代替、every_page_items用100;第二次得到第101-200条信息时,start_num用100代替、every_page_items用100等等)。
      

  2.   

    如查使用Oracle 数据库的话
    可以使用sql 进行查询,通过rowid ,取从第几条到第几条的记录
      

  3.   


    如果用的是mysql的话,有个变量limit
     select * from table LIMIT start_row,page_num;
    start_row表示你从数据库的第几行开始去,page_num表示你一次去的记录数
    可以如下编写代码:
    你在JSP页面请求中设置参数page=?,即要访问第几页,每页的记录数自己定,
    然后让Servlet接收请求参数,调用你查询数据库的那个方法
    比如  
    public List getRecordByPage(int page,int page_num){
        //page表示要显示第几页,page_num表示每页显示数目
         int start_row = page * page_num;
        //现在又了start_row和page_num,编写JDBC代码
    }
      

  4.   

    到网上搜索一下'分页'...
    分页的sql语句搞定就没问题了。
      

  5.   

    根据特定数据库的分页功能
    Mysql分页采用limt关键字
    Mssql 2000分页采用top关键字(20005以上版本也支持关键字rownum)
    oracle 采用rownum关键字
      

  6.   

    如果是用hibernate作为持久化机制的话可以使用hibernate的分页机制+ajax;用js插件的的话比较麻烦
      

  7.   

    Query query = s.createQuery(sb.toString());//创建你的SQL

    int firstRow = 0;
    firstRow = pageSize * (currentPage - 1);//初始化第一行  pageSize =100  currentPage =你查了几次或者(如果你一页100条 这个值就是当前页)query.setFirstResult(firstRow);
    query.setMaxResults(pageSize);//一次查多少你的呢等于100
    firstRow 根据你现在查到第几行了,
      

  8.   

    好像与数据库没关系  什么数据库都行这是hibernate 控制的,这样会查多次数据库 ,在内存够多数据量不太或对速度要求不高的系统最好是别用这种,一次查出来放到session 里面更好(个人认为)