J2EE支持JDBC事务、JTA事务和容器事务事务,这里说一下怎样实现JDBC事务。

JDBC事务是由Connection对象所控制的,它提供了两种事务模式:自己主动提交和手动提交,默认是自己主动提交。

自己主动提交就是:在JDBC中。在一个连接对象Connection中。默认把每一个SQL语句的运行都当做是一个事务(即每次运行完SQL语句都会马上将操作更新到数据库)。

手动提交就是:当须要一次性运行多个SQL语句,将多个SQL语句组成一个事务(即要么都成功,要么回滚全部的操作)时,就得手动提交。

看一个样例:

import java.sql.*;public class TransactionTest{public static void main(String[] args) throws SQLException {try {Class.forName("oracle.jdbc.driver.OracleDriver");Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:orcl","TransactionTest","123456");//将事务模式设置为手动提交事务:conn.setAutoCommit(false);//设置事务的隔离级别。conn.setTransactionIsolation(Connection.TRANSACTION_REPEATABLE_READ);//运行插入操作String sqlInsert = "insert into t_user(userName,userPassword) values(?,?

)"; pstmt = conn.prepareStatement(sqlInsert); pstmt.setString(1, "danny"); pstmt.setString(2, "123"); pstmt.executeUpdate(); //运行改动操作 String sqlUpdate = "update t_user set userPassword=? where userName = ?"; pstmt = conn.prepareStatement(sqlUpdate); pstmt.setString(1, "123456"); pstmt.setString(2, "danny"); pstmt.executeUpdate(); //提交事务 conn.commit(); } catch (Exception e) { // 若事务发生异常,回滚事务 conn.rollback(); }finally{ if (pstmt!=null) { pstmt.close(); } if (conn!=null) { conn.close(); } } } }

当须要插入和更新这两个操作同一时候运行时,要么两个操作都成功,假设有一个失败。则撤销全部的操作。

宏观来看须要例如以下四个步骤:

1、将事务模式设置为手动提交事务:

conn.setAutoCommit(false);

2、设置事务的隔离级别:

conn.setTransactionIsolation(Connection.TRANSACTION_READ_COMMITTED);

3、提交事务:

conn.commit();

4、假设发生异常,回滚事务:

conn.rollback();

从上面看,JDBC事务使用较为方便,但因为它是由Connection对象所控制的,所以它的缺点是事务的范围仅仅局限于一个数据库的连接,同一个事务中无法操作多个数据库。

转载于:https://www.cnblogs.com/claireyuancy/p/6699923.html

Java+Oracle实现事务——JDBC事务相关推荐

  1. Java中的事务——JDBC事务和JTA事务

    转载自 Java中的事务--JDBC事务和JTA事务 我的博客中曾经关于事务有过很多讨论,之前的事务介绍基本都是数据库层面的事务,本文来介绍一下J2EE中和事务相关的内容,在阅读本文之前,希望读者对分 ...

  2. Java事务处理总结【JDBC事务|JTA事务|容器事务】

    来源:http://hi.baidu.com/wangking/blog/item/4d28730945364aaa2eddd4a9.html 一.什么是 Java事务 通常的观念认为,事务仅与数据库 ...

  3. 事务处理总结【JDBC事务|JTA事务|容器事务

    http://space.itpub.net/13956325/viewspace-598381 一.什么是Java事务 通常的观念认为,事务仅与数据库相关. 事务必须服从ISO/IEC所制定的ACI ...

  4. JDBC事务和JTA事务的区别 --包含spring事务 声明式事务

    2019独角兽企业重金招聘Python工程师标准>>> 一.事务概述 事务表示一个由一系列的数据库操作组成的不可分割的逻辑单位,其中的操作要么全做要么全都不做. 与事务相关的操作主要 ...

  5. java jdbc事务_Java JDBC事务管理和保存点

    java jdbc事务 Transaction Management in java is required when we are dealing with relational databases ...

  6. java JDBC事务和JTA事务详解

    什么是事务? 事务其实就是一套数据库操作集合,说到事务就不得不说它的四大特性(A C I D):原子性,一致性,隔离性,持久性.事务的原子性表示事务要么被全部执行,要么被全部不执行.如果事务下的子事务 ...

  7. Java JDBC事务与JTA分布式事务

    Java事务的类型有三种:JDBC事务.JTA(Java Transaction API)事务.容器事务. 常见的容器事务如Spring事务,容器事务主要是J2EE应用服务器提供的,容器事务大多是基于 ...

  8. Java的JDBC事务详解

    事务的特性:1) 原子性(atomicity):事务是数据库的逻辑工作单位,而且是必须是原子工作单位,对于其数据修改,要么全部执行,要么全部不执行.2) 一致性(consistency):事务在完成时 ...

  9. Java JDBC篇3——JDBC事务

    Java JDBC篇3--JDBC事务 1.事务方法 方法声明 功能介绍 void setAutoCommit(boolean autoCommit) 参数是 true 或 false 如果设置为 f ...

最新文章

  1. 使用 Python 的基于边缘和基于区域的分割
  2. 10年内,19个关键技术将改变世界
  3. 3.5 面向连接的运输:TCP
  4. 内部排序——直接插入排序
  5. ImageUploadAssist--DATA
  6. Cocos2d-x创建包边字
  7. Android中URI的格式
  8. Sublime Text 插件-全栈开发收集
  9. GitHub 给已存在的仓库增加开原协议LICENSE
  10. 【教程New】IDM安装使用教程--便捷下载网页视频的好方法
  11. yum install gcc 下载失败有可能是这个原因?
  12. win7录屏_专业电脑录屏方法有哪些?分享录屏靠谱方法!
  13. 信息与计算机课件,第一章 信息技术与计算机ppt课件.ppt
  14. PaaS服务从heroku迁移到Fly.io小计
  15. HDU 1348(Wall)
  16. centos5-6修复心血漏洞
  17. 指向性麦克风--心形麦克风设计(五)
  18. 使用xbox游戏手柄控制PX4的gazebo仿真
  19. 18.03.21 继承作业
  20. DCB学习之三(CN)

热门文章

  1. aix 卸载mysql_AIX 删除数据库及集群软件
  2. 指数函数中x的取值范围_基本初等函数I: 指数函数、对数函数和幂函数
  3. 滑膜观测器物理意义_电机控制中的滑模控制(滑模观测器设计)
  4. easyui数据表格重置_数据库三种删除方式
  5. php spider shell,ScrapyShell使用
  6. 电力电子、电机控制系统的建模和仿真_清华团队研发,首款国产电力电子仿真软件来啦~已捐赠哈工大、海工大、清华使用!...
  7. 服务器共享文件审计,内网安全管理系统-共享审计
  8. (1-e^(-j5w))/(1-e^(-jw))=e^(-j2w)*sin(5w/2)/sin(w/2)的证明过程
  9. Opencv——图像金字塔与图像尺寸缩放
  10. c ++ 函数的esp指针_在C ++中通过指针访问成员函数