【问题标题】:Java JDBC savePointJava JDBC 保存点
【发布时间】:2011-11-09 08:58:53
【问题描述】:

阅读

http://download.oracle.com/javase/6/docs/api/java/sql/Savepoint.html

没有很好地说明从数据库的角度映射了哪些保存点。

设置保存点后,数据库更改是否可用于其他事务?

谢谢

【问题讨论】:

    标签: java jdbc


    【解决方案1】:

    【讨论】:

    • 这是错误的。如http://docs.oracle.com/The method Connection.setSavepoint, sets a Savepoint object within the current transaction. The Connection.rollback method is overloaded to take a Savepoint argument.所述
    • @ValentinoDell'Aica:我的陈述有什么问题?保存点一种 DBMS 功能。 JDBC API 只是让您访问该功能。如果 DBMS 不支持它们,则无法在 JDBC 中使用它们
    【解决方案2】:

    保存点标记当前事务可以回滚到的点。它可以选择仅回滚其中的一些更改,而不是回滚所有更改。例如,假设您:

    • 开始交易,
    • 在表格中插入 10 行,
    • 设置保存点,
    • 再插入 5 行,
    • 回滚到保存点,
    • 提交事务。

    完成此操作后,表格将包含您插入的前 10 行。其他 5 行将被回滚删除。

    设置保存点不会将任何数据“保存”到数据库中。它不会使数据库更改对任何其他事务可见。保存点只是当前事务可以回滚到的标记。

    【讨论】:

      猜你喜欢
      • 2023-03-19
      • 1970-01-01
      • 2012-05-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-09
      • 2014-02-16
      • 2012-07-24
      相关资源
      最近更新 更多