在事务中使用 Savepoint

news/2024/5/19 0:01:29 标签: JDBC

也许在 JDBC 3.0 中最令人兴奋的附加特点就是 Savepoint 了。JDBC 2 中的事务支持让开发人员可以控制对数据的并发访问,从而保证持续数据总是保持一致的状态。可惜的是,有时候需要的是对事务多一点的控制,而不是在当前的事务中简单地对每一个改变进行回滚。在JDBC 3.0 下,可以通过 Savepoint 获得这种控制。Savepoint 接口允许您将事务分割为各个逻辑断点,以控制有多少事务需要回滚。下图3 将说明如何在事务中运用 Savepoint。

 

你或许不是经常需要使用 Savepoint。然而,在一种普遍的情况下 Savepoint 会发挥作用,那就是您需要作一系列的改变,但是在知道所有的结果之前不能确定应该保留这些改变的哪一部分。下面的代码示例说明了如何使用 Savepoint 接口。

......
conn.setAutoCommit(false);
// Set a conservative transaction isolation level.
conn.setTransactionIsolation(Connection.TRANSACTION_SERIALIZABLE);
Statement stmt = conn.createStatement();
int rows = stmt.executeUpdate( "INSERT INTO authors " +
" (first_name, last_name) VALUES " +
" ('Ghq', 'Wxl')");
// Set a named savepoint.
Savepoint svpt = conn.setSavepoint("NewAuthor");
// …
rows = stmt.executeUpdate( "UPDATE authors set type = 'fiction' " +
"WHERE last_name = 'Wxl'");
// …
conn.rollback(svpt);
// …
// The author has been added, but not updated.
conn.commit();


http://www.niftyadmin.cn/n/1552087.html

相关文章

Spring声明事务中的几个概念

1.TransactionAttribute :传播途径和隔离级别 2.TransactionStatus: 判断是否有新事务、是否有savepoint,是否能够进行回滚 3.TransactionInfo是TransactionAspectSupport的一个内部类,它主要有两部分组成:transactionStatus和transactionAttribute 4.PlatformTran…

Oracle Solaris 11管理:常见任务

1. 查找有关 Oracle Solaris 命令的信息 2. 管理用户帐户和组(概述) 3. 管理用户帐户和组(任务) 4. 引导和关闭 Oracle Solaris 系统 5. 使用 Oracle Configuration Manager 6. 管理服务(概述) 7. 管…

Solaris 11安装

1、下载安装包Oracle Solaris 11 11/11 Text install //下载x86 即pc平台的Oracle Solaris 11 11/11 Repository Image //分为Part A和Part B都下载 只是一个软件包而已,如果不需要gnome-GUI可以不下载;下载地址:http://www.oracle.com/techn…

dwr 一些累积

dwr 一些累积 zhhzhfya 发表于 2006-6-17 11:19:00 1、最小配置 java代码: <servlet> <servlet-name>dwr-invoker</servlet-name> <servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class> </servlet> <servlet-mapping> &l…

oracle 11G 11.2.0.1.0使用exp无法导出空表的解决办法

设置deferred_segment_creation 参数SQL>show parameter deferred_segment_creationNAME TYPE VALUE------------------------------------ ----------- ------------------------------deferred_segment_creation boole…

dhtmlgoodies网站上的一些js,也许在工作中用得到

到http://www.dhtmlgoodies.com这个网站上闲逛了一些&#xff0c;发现了一些比较好用的js脚本&#xff0c;虽然它在脚本封装方便做的还不够好&#xff0c;远没有 prototype,jquery,extjs般华丽&#xff0c;但是它做了一些实实在在的事情&#xff0c;提供了一些我们期盼的一些功…

Solaris 11开启FTP服务

启动root用户的ftp服务&#xff1a;# vi /etc/ftpd/ftpusers注释掉root行# vi /etc/proftpd.conf去掉RootLogin on行的注释&#xff0c;启动ftp服务&#xff1a;# svcadm enable ftp即可开启root用户的远程ftp功能。

Oracle 11gR2修改内存参数后无法启动问题

Microsoft Windows [版本 6.1.7600]版权所有 (c) 2009 Microsoft Corporation。保留所有权利。C:\windows\system32>net start oracleserviceorclOracleServiceORCL 服务正在启动 ......OracleServiceORCL 服务已经启动成功。C:\windows\system32>sqlplus / as sysdbaSQL…