Java+Oracle实现事务——JDBC事务
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事务相关推荐
- Java中的事务——JDBC事务和JTA事务
转载自 Java中的事务--JDBC事务和JTA事务 我的博客中曾经关于事务有过很多讨论,之前的事务介绍基本都是数据库层面的事务,本文来介绍一下J2EE中和事务相关的内容,在阅读本文之前,希望读者对分 ...
- Java事务处理总结【JDBC事务|JTA事务|容器事务】
来源:http://hi.baidu.com/wangking/blog/item/4d28730945364aaa2eddd4a9.html 一.什么是 Java事务 通常的观念认为,事务仅与数据库 ...
- 事务处理总结【JDBC事务|JTA事务|容器事务
http://space.itpub.net/13956325/viewspace-598381 一.什么是Java事务 通常的观念认为,事务仅与数据库相关. 事务必须服从ISO/IEC所制定的ACI ...
- JDBC事务和JTA事务的区别 --包含spring事务 声明式事务
2019独角兽企业重金招聘Python工程师标准>>> 一.事务概述 事务表示一个由一系列的数据库操作组成的不可分割的逻辑单位,其中的操作要么全做要么全都不做. 与事务相关的操作主要 ...
- java jdbc事务_Java JDBC事务管理和保存点
java jdbc事务 Transaction Management in java is required when we are dealing with relational databases ...
- java JDBC事务和JTA事务详解
什么是事务? 事务其实就是一套数据库操作集合,说到事务就不得不说它的四大特性(A C I D):原子性,一致性,隔离性,持久性.事务的原子性表示事务要么被全部执行,要么被全部不执行.如果事务下的子事务 ...
- Java JDBC事务与JTA分布式事务
Java事务的类型有三种:JDBC事务.JTA(Java Transaction API)事务.容器事务. 常见的容器事务如Spring事务,容器事务主要是J2EE应用服务器提供的,容器事务大多是基于 ...
- Java的JDBC事务详解
事务的特性:1) 原子性(atomicity):事务是数据库的逻辑工作单位,而且是必须是原子工作单位,对于其数据修改,要么全部执行,要么全部不执行.2) 一致性(consistency):事务在完成时 ...
- Java JDBC篇3——JDBC事务
Java JDBC篇3--JDBC事务 1.事务方法 方法声明 功能介绍 void setAutoCommit(boolean autoCommit) 参数是 true 或 false 如果设置为 f ...
最新文章
- 使用 Python 的基于边缘和基于区域的分割
- 10年内,19个关键技术将改变世界
- 3.5 面向连接的运输:TCP
- 内部排序——直接插入排序
- ImageUploadAssist--DATA
- Cocos2d-x创建包边字
- Android中URI的格式
- Sublime Text 插件-全栈开发收集
- GitHub 给已存在的仓库增加开原协议LICENSE
- 【教程New】IDM安装使用教程--便捷下载网页视频的好方法
- yum install gcc 下载失败有可能是这个原因?
- win7录屏_专业电脑录屏方法有哪些?分享录屏靠谱方法!
- 信息与计算机课件,第一章 信息技术与计算机ppt课件.ppt
- PaaS服务从heroku迁移到Fly.io小计
- HDU 1348(Wall)
- centos5-6修复心血漏洞
- 指向性麦克风--心形麦克风设计(五)
- 使用xbox游戏手柄控制PX4的gazebo仿真
- 18.03.21 继承作业
- DCB学习之三(CN)
热门文章
- aix 卸载mysql_AIX 删除数据库及集群软件
- 指数函数中x的取值范围_基本初等函数I: 指数函数、对数函数和幂函数
- 滑膜观测器物理意义_电机控制中的滑模控制(滑模观测器设计)
- easyui数据表格重置_数据库三种删除方式
- php spider shell,ScrapyShell使用
- 电力电子、电机控制系统的建模和仿真_清华团队研发,首款国产电力电子仿真软件来啦~已捐赠哈工大、海工大、清华使用!...
- 服务器共享文件审计,内网安全管理系统-共享审计
- (1-e^(-j5w))/(1-e^(-jw))=e^(-j2w)*sin(5w/2)/sin(w/2)的证明过程
- Opencv——图像金字塔与图像尺寸缩放
- c ++ 函数的esp指针_在C ++中通过指针访问成员函数