文档章节

java中jdbc多表操作事物回滚

wangmeilian
 wangmeilian
发布于 2016/04/11 10:57
字数 289
阅读 45
收藏 0

提出问题:通过jdibc分别对四个表进行插入操作,如果有一个表插入失败,其他操作也无效,请问怎么让这四个类中的插入方法绑定在一个事物中,异常后回滚?

解决问题:
可以把要执行的四个SQL语句写到同一个List中再调用此方法
你也可以自己写
主要注意
执行sql插入前要取消自动提交 con.setAutoCommit(false);
全部sql语句执行完成后再提交 con.commit();
执行过程抛出异常则回滚      con.rollback();
希望对你有帮助

public boolean exeupdate(List<String> sqls) throws SQLException {
 boolean flag = false;
 openPoolConnection();//创建连接
 try {
  //取消自动提交 
  con.setAutoCommit(false);
  for(int i=0;i<sqls.size();i++)
  {
      pstmt = con.prepareStatement(sqls.get(i));
      int rows = pstmt.executeUpdate();
  }
         flag = true;
         con.commit();//提交
 } catch (Exception e) {
      con.rollback();//回滚
  e.printStackTrace();
 } finally {
      this.closeAll();//关闭连接 数据集 语句对象
 }
 return flag;
 } 



© 著作权归作者所有

共有 人打赏支持
wangmeilian
粉丝 0
博文 6
码字总数 4018
作品 0
东城
JDBC事务管理及SavePoint示例

默认情况下,当我们创建一个数据库连接时,会运行在自动提交模式(Auto-commit)下。这意味着,任何时候我们执行一条SQL完成之后,事务都会自动提交。所以我们执行的每一条SQL都是一个事务,...

heroShane
2014/02/07
0
0
基于可靠消息方案的分布式事务(二):Java中的事务

前言:在上一篇文章 基于可靠消息方案的分布式事务:Lottor介绍 中介绍了常见的分布式事务的解决方案以及笔者基于可靠消息方案实现的分布式事务组件Lottor的原理,并展示了应用的控制台管理。...

aoho
06/01
0
0
JDBC事务和JTA事务的区别 --包含spring事务 声明式事务

一、事务概述 事务表示一个由一系列的数据库操作组成的不可分割的逻辑单位,其中的操作要么全做要么全都不做。 与事务相关的操作主要有: BEGIN TRANSACTION; 开始一个事务,方法是:begin...

oswebgod
07/30
0
0
spring Transactional(转)

经常用到老搞混,从网上摘了点记录下来。 // 业务方法需要在一个事物中运行,如果方法运行时,已经存在一个事物中, // 那么加入该事物,否则为自己创建一个新事物。 @Transactional(propaga...

blooms
2012/09/13
0
0
spring Transactional

经常用到老搞混,从网上摘了点记录下来。 // 业务方法需要在一个事物中运行,如果方法运行时,已经存在一个事物中, // 那么加入该事物,否则为自己创建一个新事物。 @Transactional(propaga...

北京java
2012/06/04
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Spring加载properties文件的两种方式

在项目中如果有些参数经常需要修改,或者后期可能需要修改,那我们最好把这些参数放到properties文件中,源代码中读取properties里面的配置,这样后期只需要改动properties文件即可,不需要修...

架构师springboot
12分钟前
0
0
分布式事务,原来可以这么玩?

多个数据要同时操作,如何保证数据的完整性,以及一致性? 答 : 事务 ,是常见的做法。 举个栗子: 用户下了一个订单,需要修改 余额表 , 订单 表 , 流水 表 ,于是会有类似的伪代码: st...

微笑向暖wx
15分钟前
0
0
IE6兼容PNG32图片显示PNG8图片

IE6并不是不支持PNG图片,只是不支持半透明通道。 是支持PNG8色表引索全透明的。 以往都是通过滤镜或统统使用PNG8实现兼容。 但是我发现twitter的png图标可以在chrome中显示png32,在IE6显示...

linsk1998
27分钟前
0
0
linux运维需要掌握的基础知识

踏入linux运维工程师这一职业,其实有很多工具技能需要掌握,下面我来给大家一一介绍。 1、shell脚本和另一个脚本语言,shell是运维人员必须具备的,不懂这个连入职都不行,至少也要写出一些...

linuxprobe16
28分钟前
0
0
《netty入门与实战》笔记-03:数据传输载体 ByteBuf 介绍

ByteBuf结构 首先,我们先来了解一下 ByteBuf 的结构 以上就是一个 ByteBuf 的结构图,从上面这幅图可以看到: ByteBuf 是一个字节容器,容器里面的的数据分为三个部分,第一个部分是已经丢弃...

Funcy1122
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部