`
zhengrenqi
  • 浏览: 2912 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
最近访客 更多访客>>
社区版块
存档分类

ResultSet.TYPE_SCROLL_SENSITIVE / INSENSITIVE

    博客分类:
  • JDBC
阅读更多
周六面试的时候问到了SENSITIVE、INSENSITIVE,太久没用过了,没答出来。
用缺省设置创建时,ResultSet 是一种只能访问一次(one-time-through)、只能向前访问(forward-only)和只读的对象。您只能访问数据一次,如果再次需要该数据,必须重新查询数据库。

然而,并不只有这一种方式。通过设置 Statement 对象上的参数,您可以控制它产生的 ResultSet。例如:

...
         Class.forName(driverName);
         db = DriverManager.getConnection(connectURL);
         Statement statement = db.createStatement(
                            ResultSet.TYPE_SCROLL_SENSITIVE,
                                                  ResultSet.CONCUR_UPDATABLE
                        );        
        
         String orderElName = xmlfileEl.getElementsByTagName("order").item(0)
                                       .getFirstChild().getNodeValue();
...

这个 Statement 现在将产生可以更新并将应用其他数据库用户所作更改的 ResultSet。您还可以在这个 ResultSet 中向前和向后移动。

第一个参数指定 ResultSet 的类型。其选项有:

TYPE_FORWARD_ONLY:缺省类型。只允许向前访问一次,并且不会受到其他用户对该数据库所作更改的影响。
TYPE_SCROLL_INSENSITIVE:允许在列表中向前或向后移动,甚至可以进行特定定位,例如移至列表中的第四个记录或者从当前位置向后移动两个记录。不会受到其他用户对该数据库所作更改的影响。
TYPE_SCROLL_SENSITIVE:象 TYPE_SCROLL_INSENSITIVE 一样,允许在记录中定位。这种类型受到其他用户所作更改的影响。如果用户在执行完查询之后删除一个记录,那个记录将从 ResultSet 中消失。类似的,对数据值的更改也将反映在 ResultSet 中。
第二个参数设置 ResultSet 的并发性,该参数确定是否可以更新 ResultSet。其选项有:

CONCUR_READ_ONLY:这是缺省值,指定不可以更新 ResultSet
CONCUR_UPDATABLE:指定可以更新 ResultSet
分享到:
评论

相关推荐

    javaResultSet常用方法.pdf

    其中,resultSetType指定ResultSet的类型,可以是ResultSet.TYPE_FORWARD_ONLY、ResultSet.TYPE_SCROLL_INSENSITIVE或ResultSet.TYPE_SCROLL_SENSITIVE之一。resultSetConcurrency指定ResultSet的并发类型,可以是...

    采用JDBC进行数据库分页查询

    // ResultSet.TYPE_SCROLL_SENSITIVE:可滚动。当其他用户更改数据库时这个记录也会改变。 // 能否更新记录: // ResultSet.CONCUR_READ_ONLY,只读 // ResultSet.CONCUR_UPDATABLE,可更新 PreparedStatement pstat =...

    java resultset常用方法

    - **resultSetType**:定义ResultSet的类型,可以是`ResultSet.TYPE_FORWARD_ONLY`、`ResultSet.TYPE_SCROLL_INSENSITIVE`或`ResultSet.TYPE_SCROLL_SENSITIVE`。 - **resultSetConcurrency**:定义ResultSet的并发...

    Db.rar_滚动

    对于大结果集,通常使用`ResultSet.TYPE_SCROLL_SENSITIVE`或`ResultSet.TYPE_SCROLL_INSENSITIVE`来创建可滚动的结果集,前者对数据库的修改敏感,后者不敏感。 5. **分页和数据流**:在处理大量数据时,数据滚动...

    JDBCJDBC高级应用

    - 创建可更新结果集时,需要指定并发性类型,如 `ResultSet.CONCUR_UPDATABLE`,并配合 `ResultSet.TYPE_SCROLL_INSENSITIVE` 或 `ResultSet.TYPE_SCROLL_SENSITIVE` 使用。 - 更新结果集中的数据通常涉及 `update...

    《Java程序设计案例教程》教学课件09Java数据库编程.pptx

    ResultSet.TYPE_SCROLL_INSENSITIVE允许上下移动,但对数据库变化不敏感;ResultSet.TYPE_SCROLL_SENSITIVE则在移动时会反映数据库的最新状态。resultSetConcurrency的ResultSet.CONCUR_READ_ONLY意味着结果集是只读...

    ResultSet剖析

    - `resultSetType`:设置`ResultSet`的滚动模式,`ResultSet.TYPE_FORWARD_ONLY`表示仅支持前向滚动,`ResultSet.TYPE_SCROLL_INSENSITIVE`和`ResultSet.TYPE_SCROLL_SENSITIVE`则允许双向滚动,区别在于后者对数据...

    jdbc联接代码

    - **`ResultSet.TYPE_SCROLL_SENSITIVE`**:也支持任意方向滚动,但与数据库保持同步,因此数据集会反映出数据库中的更改。 此外,`ResultSet`还有两种并发级别: - **`ResultSet.CONCUR_READ_ONLY`**:表示只能...

    关于JAVA数据库基本操作

    PreparedStatement ps = cn.prepareStatement(sql, ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY); ``` 3. **使用`ResultSet`的方法实现记录集的滚动**: ```java rs.absolute(9000); // ...

    jdbc示例代码

    然而,通过设置Statement的类型为ResultSet.TYPE_SCROLL_INSENSITIVE或ResultSet.TYPE_SCROLL_SENSITIVE,我们可以获取一个支持滚动的游标。滚动游标允许我们前后移动结果集,不仅可以向上或向下遍历,还可以定位到...

    Java数据库编程中的几个常用技巧

    ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY ); ``` 3. **使用可滚动结果集** - 可以使用`ResultSet`的`absolute`方法来移动游标: ```java ResultSet rs = ...; // 获取结果集 rs....

    关于java数据库基本操作

    ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY ); ``` 2. **批量更新** - 通过`addBatch()`方法可以将多个更新语句添加到批处理中,然后一次性执行。 - 示例代码: ```java ...

    在JSP中连接各种数据库

    Statement stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY); String sql = "SELECT * FROM tablename"; ResultSet rs = stmt.executeQuery(sql); while (rs.next...

    JDBC2.0新功能

    但在JDBC 2.0中,通过`ResultSet.TYPE_SCROLL_SENSITIVE`和`ResultSet.TYPE_SCROLL_INSENSITIVE`选项,开发者可以创建可滚动的结果集。这使得开发人员可以在结果集中前后移动,甚至直接跳转到特定行。例如,使用`...

    2022年Java数据库编程中的技巧Java教程.docx

    创建此类记录集时,需要在创建`Statement`时指定`ResultSet.TYPE_SCROLL_SENSITIVE`或`ResultSet.TYPE_SCROLL_INSENSITIVE`,并设置并发模式(如`ResultSet.CONCUR_READ_ONLY`)。 - 对于`PreparedStatement`,同样...

    java连接各种数据库DEMO

    Statement stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE); String sql = "select * from test"; ResultSet rs = stmt.executeQuery(sql); while (rs.next()) { ...

Global site tag (gtag.js) - Google Analytics