TYPE_SCROLL_INSENSITIVE:双向滚动结果集,不受Result底层数据更改的影响。TYPE_SCROLL_INSENSITIVE:双向滚动结果集,受Result底层数据更改的影响。什么叫受或者不受Result底层数据更改的影响?
另外CONCUR_READ_ONLY和CONCUR_UPDATETABLE用的时候有什么区别? 

解决方案 »

  1.   

    可滚动结果集——这种结果集不但可以双向滚动,相对定位,绝对定位,并且可以修改数据信息。    方法说明 next(),此方法是使游标向下一条记录移动。previous() ,此方法可以使游标上一条记录移动,前提前面还有记录。absolute(int row),可以使用此方法跳到指定的记录位置。定位成功返回true,不成功返回false,游标不会移动。afterLast() ,游标跳到最后一条记录之后。beforeFirst() ,游标跳到第一条记录之前。(跳到游标初始位)first(),游标指向第一条记录。last(),游标指向最后一条记录。relative(int rows) ,相对定位方法,参数值可正可负;参数为正,游标从当前位置向下移动指定值,参数为负,游标从当前位置向上移动指定值。TYPE_FORWARD_ONLY ,该常量指示指针只能向前移动的ResultSet对象的类型。TYPE_SCROLL_INSENSITIVE ,该常量指示可滚动但通常不受其他的更改影响的ResultSet 对象的类型。TYPE_SCROLL_SENSITIVE ,该常量指示可滚动并且通常受其他的更改影响的 ResultSet 对象的类型。
       要使用可滚动结果集时,要在Statement创建时指定参数,才可以使用Statement st=null;st=con.createStatement(ReusltSet.TYPE_SCROLL_INSENSITIVE,ResuleSet.CONCUR_UPDATABLE);ResultSet结果集中,先使用moveToInsertRow(),将游标移到和结果集结构类似的缓冲区中,然后可以使用updateXxx(int column,columnType value)方法来更新指定列数据,再使用insertRow() 方法插入记录,最后将游标指回原位:moveToCurrentRow() 。能否使用可更新结果集,要看使用的数据库驱动是否支持;可更新结果集只能用于单表且表中有主键字段(可能会是联合主键),不能够有表连接。
      

  2.   

    什么叫受或者不受Result底层数据更改的影响?
    如果数据库中对该条数据修改过并不在Result中反映出来另外CONCUR_READ_ONLY和CONCUR_UPDATETABLE用的时候有什么区别? 
    CONCUR_READ_ONLY是只读 CONCUR_UPDATETABLE是可写 如果你用过ResultSet更新过数据库记录 你就明白区别了....不太清楚现在还有虾米人在用这个方式更新数据