数据库条数都是从1开始计数的。
在JSP中有个属性param.start 表示当前页中第一条数据是数据库中的第几条....是从0开始的
这个从0开始计数和数据库1开始计数有什么区别么?各位大侠 盼解答.....

解决方案 »

  1.   

    一般的程序语言,比如java/C等等中,数组下标从0开始。
    而数据库中,如果把结果集看作一个数组的话,数组下标是从1开始的。
    h程序语言与数据库的区别,至于为什么,只有天知道
    这就是为什么我们用
    rs.setString(1,"asdf");rs.getString(1,"asdf");而永远不能用rs.setString(0,"dadf"),rs.getString(0,"dadf")的原因。
      

  2.   

    其实可以不用关心数据库的计数开始位置与数组的下标间的关系。
    原因如下。所谓分页,数据库的1-10算第一页,11-20算第二页,就是这样的。那么,这两页数据,数据库计数与数组早就不一一对应了所以,关键是你找准两者的对应规律即可,如Hibernate+Struts典型的分页就是:
    告诉Hibernate你第一条数据的索引号和当前一页数据最大条数,Hibernate自动给你获取
    query.sexFirstRecord(a);
    query.setMaxRecords(max);你可以观察到,每一页10条数据,第一页是1-10,第二页是11-20
    那么规律就是:只要设置了每页的第一条数据即可
    每页第一条数据索引 = (当前页编号-1)*页大小+1
    Hibernate不知道你学过没有,不管任何数据库都可以这样操作,它在后台根据每个数据库的Dialect自动换成本地的分页sql:
    如oracle就会用rownum 
    sqlserver就会用top
    mysql就会用limit
    有问题可以进一步找我探讨
      

  3.   


    rs.setString(1,"asdf");这个1貌似是SQL语句中插入参数的位置吧......