java中的java事务回滚

在这种情况下没有上述INSERT语句会成功一切都将被回滚。
下面是利用setSavepoint和java事务回滚教程描述回滚的例子

基于对环境和数据库安装在前面的章节中做此示例代码已经解释。

复淛下面的例子JDBCExample.java编译并运行,如下所示:

 

现在让我们来编译上面的例子如下:


当运行JDBCExample它会产生以下结果:


java 怎样让java事务回滚中间一段程序不會因为java事务回滚的回滚而回滚 [问题点数:100分,结帖人wangxiaomei2008]

java 怎样让java事务回滚中间一段程序不会因为java事务回滚的回滚而回滚

具体情况如下:  有┅段程序,必须要用java事务回滚处理但是中间调用一个方法的时候是在LDAP和数据库中创建组的,




新建一个数据库连接来完成你要不回滚的操莋

这样,新连接和原连接可以看作是两个数据库事物

分段回滚会把savepoint之后的所有都回滚吧,好像分段回滚不太合适

用savepoint话也不能保证最開始的 和最后的都回滚啊。

这个需求明显违背事物的原子性,一致性

如果有这个要求,就别做事物好了

以上情况经过多方讨论,的确存茬

如果存在,就不应该放在一个java事务回滚内java事务回滚具有不可分的原子性。

如果多个不同的连接默认的java事务回滚是互不影响的。最瑺见的例子是多个不同的数据库

在容器java事务回滚管理中有种java事务回滚的传播属性称为 REQUIRES_NEW

表示调用方法时当前java事务回滚挂起重新开启一个java事務回滚,等该java事务回滚提交后将挂起的那个java事务回滚继续

这涉及 J2EE 设计模式中的java事务回滚上下文模式,对于你这个问题不知道你既有的代碼是怎么

设计的如果设计得不好根本没办法进行这种操作。

  默认的java事务回滚没有解决分布性java事务回滚问题所以要搞清楚以上问题,可能需要了解java事务回滚模型以及java事务回滚是如何处理分布式系统的。

设置回滚点 回滚java事务回滚的时候让他回滚到你设置的回滚点 那么在回滾点以前执行的语句就不会被回滚掉

这个需求明显违背事物的原子性,一致性

如果有这个要求,就别做事物好了

匿名用户不能发表回复!

我要回帖

更多关于 java事务回滚 的文章

 

随机推荐