【问题标题】:JDBC result set type scroll sensitive [closed]JDBC结果集类型滚动敏感[关闭]
【发布时间】:2017-03-06 21:05:31
【问题描述】:

ResultSet.TYPE_SCROLL_SENSITIVE 在 JDBC 中实际上是如何工作的?

Statement stmt = conn.createStatement(
                       ResultSet.TYPE_SCROLL_SENSITIVE,
                       ResultSet.CONCUR_READ_ONLY);`

【问题讨论】:

  • 问题是什么?
  • 敏感结果集的内部工作
  • 内部工作?打开源代码看看。你希望通过这样做来完成什么?
  • 结果集对其他人在创建结果集后对数据库所做的更改很敏感。这是 oracle 文档的标准定义。创建结果集后,数据库中所做的更改会反映到结果集吗?

标签: java jdbc


【解决方案1】:

JDBC specification 说:

ResultSet 对象的类型决定了它的功能级别 在两个主要领域:(1)可以操纵光标的方式 (2) 如何对底层数据源进行并发更改 由ResultSet 对象反映。后者称为灵敏度 ResultSet 对象。

三种不同的ResultSet 类型如下所述。

[...]

3. TYPE_SCROLL_SENSITIVE

  • 结果集是可滚动的;它的光标可以向前移动 相对于当前位置向后移动,它可以移动到 绝对位置。
  • 结果集反映了对基础数据源所做的更改 结果集保持打开状态。

默认的ResultSet 类型是TYPE_FORWARD_ONLY

方法DatabaseMetaData.supportsResultSetType返回true 如果驱动程序支持指定的类型,否则false

如果驱动程序不支持提供给方法的类型 createStatementprepareStatementprepareCall,它会生成一个 SQLWarning 在创建语句的 Connection 对象上。 执行语句时,驱动程序返回一个ResultSet 对象 与请求的类型最匹配的类型。一个应用程序 可以通过调用方法找出ResultSet对象的类型 ResultSet.getType.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-31
    • 1970-01-01
    • 2011-11-21
    • 2011-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多