加入收藏 | 设为首页 | 会员中心 | 我要投稿 济南站长网 (https://www.0531zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

java – JDBC ResultSet是应用程序级查询游标

发布时间:2021-04-01 01:07:07 所属栏目:MySql教程 来源:网络整理
导读:database cursor定义与JDBC ResultSet API非常相似. 数据库光标可以像ResultSet.TYPE_FORWARD_ONLY那样仅向前. 数据库光标可以滚动,甚至可以像ResultSet.TYPE_SCROLL_SENSITIVE一样进行灵敏度设置. ResultSet.HOLD_CURSORS_OVER_COMMIT也支持可保持性 甚至

database cursor定义与JDBC ResultSet API非常相似.

>数据库光标可以像ResultSet.TYPE_FORWARD_ONLY那样仅向前.
>数据库光标可以滚动,甚至可以像ResultSet.TYPE_SCROLL_SENSITIVE一样进行灵敏度设置.
> ResultSet.HOLD_CURSORS_OVER_COMMIT也支持可保持性
>甚至对位置更新/删除的支持也被复制到JDBC ResultSet.CONCUR_UPDATABLE中

但尽管有这些相似之处,MySQL doesn’t support database cursors:

MySQL does not support SQL cursors,and the JDBC driver doesn’t
emulate them,so setCursorName() has no effect.

那么,JDBC实现是否是模仿数据库游标实现的数据访问规范,即使数据库不支持这样的功能呢? 最佳答案 你当然可以这样想.所有这些概念都是从ODBC继承的,所以你可以感谢(责备?)历史记录.大多数dbs都没有广泛支持游标,因为在JDBC等API中提供了这些功能.特别是在MySQL中,从MySQL 5.0开始支持游标“fetch”,这意味着驱动程序不会被强制读取整个结果,无论是否需要.这意味着可以在很少或没有成本的情况下尽早放弃结果集.但是,需要额外的往返来定期请求行块. MySQL Connector / J默认情况下不强制执行FORWARD_ONLY语义,并将整个结果缓存在客户端中,允许“可滚动性”.但是,由于服务器中的实现,这不允许对在其他事务中提交的更改敏感.通常可以模仿/模拟功能,以提供API的便利性.

(编辑:济南站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读