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

前端之家收集整理的这篇文章主要介绍了java – JDBC ResultSet是应用程序级查询游标前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

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的便利性.
@H_403_23@

猜你在找的MySQL相关文章