Java JDBC savePoint

gli*_*tak 9 java jdbc

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

从数据库的角度来看,没有明确说明保存点的映射.

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

谢谢

Luk*_*ard 15

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

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

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

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


a_h*_*ame 6

保存点不是 JDBC 功能,而是 DBMS 功能。

除了 Luke 的详细回答之外,您可能还想阅读 DBMS 手册对保存点的解释

http://www.postgresql.org/docs/current/static/sql-savepoint.html
http://download.oracle.com/docs/cd/E11882_01/server.112/e17118/statements_10001.htm#BABFIJGC
http: //publib.boulder.ibm.com/infocenter/db2luw/v9r7/topic/com.ibm.db2.luw.sql.ref.doc/doc/r0003271.html
http://msdn.microsoft.com/en-us /library/ms188378.aspx
http://dev.mysql.com/doc/refman/5.5/en/savepoint.html

  • @ValentinoDell'Aica:那么我的陈述有什么问题?保存点**是**一项 DBMS 功能。JDBC API 只是让您访问该功能。如果 DBMS 不支持它们,则无法在 JDBC 中使用它们 (3认同)