当调用resultset.getString("title");等方法时才从数据库取对象

解决方案 »

  1.   

    比如JDBC FOR MSSQL2000的呢?
      

  2.   

    我觉得ResultSet作为一个结果集,它里面本来就放了数据,直接把查询的结果放到这个结果集里了。不是把指针放到里面吧。个人意见,可能不对!
    关注中~~~~~~~~~~
      

  3.   

    当然不是,如果是这样的话,对于记录条数暴多的结果集,肯怕没有什么机器能有这么大的内存。它有个FetchSize,用来设置每次取出来的数据量。
      

  4.   

    =================================
    之所以提出这个问题,正如crm2000(浏览器) 所说的,如果是所有数据都取出来放在这个对象里面,那这个性能岂不是很差??!!
    我现在要作一个分页查询,在oracle里可以通过rowid很方便地进行分页,但我现在用的是mssql2000,在获取取出结果集的时候要获取总行数,有两个办法:
    1、一个是通过sql语句来获取满足条件的个数,但这样作要写两个sql语句,一个专门来获取满足条件的个数,还有一个才是查询结果使用的sql语句(当在oracle里的时候就可以只用一个sql,关键是现在我使用mssql2000)
    2、只使用一个查询结果使用的sql语句,然后采用如下方法:
          ResultSet resultSet=...;     
          resultSet.last();
          // Get the row number of the last row which is also the row count
          int rowCount = resultSet.getRow();
          resultSet.beforeFirst();
    就可以获取满足条件的个数rowCount ================================
    不知道各位在mssql2000里的分页有什么比较好的方法,100分等待,不够可以再给了
      

  5.   

    create proc 名
    @页号 int,
    @每页大小 int
    as
    select IDENTITY(int, 1,1) AS ID_Num,* into #temp from 表
    select * from #temp where ID_Num>(@页号-1)*@每页大小 and ID_Num<=@页号*@每页大小
      

  6.   

    如果你有编号或:
    create proc 名
    @页号 int,
    @每页大小 int
    as
    exec('SELECT Top '+@每页大小+' * FROM 表 WHERE 你的编号 NOT IN (SELECT TOP '+
    cast(((@页号-1)*@每页大小) as varchar)
    +' 你的编号  FROM 表 )')
      

  7.   

    你再用java调用这两个任意一个方法
      

  8.   

    ResultSet resultSet=...;     
          resultSet.last();
          // Get the row number of the last row which is also the row count
          int rowCount = resultSet.getRow();
          resultSet.beforeFirst();
    ResultSet对象的默认属性是指针只能一次指到记录的最后一条,不能回滚.resultSet.beforeFirst();是将指针再指到最前一条记录,如果不改变属性的话,会出现异常.这样就要改变它的属性设置.具体怎么做我也忘了,可以查一下JDBC的API什么的
      

  9.   

    sultSet对象的默认属性是指针只能一次指到记录的最后一条,不能回滚.resultSet.beforeFirst();是将指针再指到最前一条记录,如果不改变属性的话,会出现异常.这样就要改变它的属性设置.具体怎么做我也忘了,可以查一下JDBC的API什么的
    ----------------------------------<<
    没有问题的,我现在关心的是resultset这个对象全取出来会不会影响性能
      

  10.   

    to pengdali(大力) 
    你下面的#temp临时表会自动删除吗?在什么时候删除,多个用户使用时会出现冲突吗?
    --------------------------
     
      create proc 名
    @页号 int,
    @每页大小 int
    as
    select IDENTITY(int, 1,1) AS ID_Num,* into #temp from 表
    select * from #temp where ID_Num>(@页号-1)*@每页大小 and ID_Num<=@页号*@每页大小 
     
      

  11.   

    to pengdali(大力) 
    你这种做法,好像无法解决多个where条件的和带排序的查询,使用价值不高。我倒是关心"resultset这个对象全取出来会不会影响性能"