oracle中事务处理
来源:互联网 发布:a星算法的缺点 编辑:程序博客网 时间:2024/06/11 17:42
oracle中事务处理(一)
事务:事务用于保证数据的一致性,它由一组相关的dml的语句组成,该组的dml
语句,要么全部成功,要么全部失败.(dml语句简单的说就是增加,修改,删除
;dml语句没有查询语句)
事务和锁:
当执行事务操作时(dml语句),oralce会在被作用的表上加锁,防止其它用户改
表的结果,这里对我们用户来讲是非常重要的!
提交事务:
1)使用commit语句可以提交事务
2)当执行commit语句后,会确认事务的变化,并且结束事务,删除保存点,释放锁,
其它会话将可以查看到事务变化后的新数据
下面简单介绍在java上使用oracle事务管理
例子:从scott的sal-100 同时smith的sal+100
package javastudy;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class Test2 {
public static void main(String[] args) {
///事务案例
Connection conn = null;
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
conn = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:orcl", "scott", "lh621366");
conn.setAutoCommit(false);///设置默认不自动提交
Statement st = conn.createStatement();
///SCOTT的薪水 sal-100
st.executeUpdate("update emp set sal=sal-100 where ename='SCOTT'");
///SMITH的sal+100
int i = 7/0;///这里是为了抛出异常,为了证明事务提交的一致性(要么全部成功,要么全部失败)
(抛出异常后,回滚点会回到conn=null这里,所以下面执行的代码也不会生效)
st.executeUpdate("update emp set sal=sal+100 where ename='SMITH'");
///提交事务
conn.commit();///将st更新的这两个sql语句和int i=7/0这个语句当做一个整体事务来处理
st.close();
conn.close();
} catch (Exception e) {
try {
///如果发生异常,就回滚
conn.rollback();
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
e.printStackTrace();
}
}
}
事务:事务用于保证数据的一致性,它由一组相关的dml的语句组成,该组的dml
语句,要么全部成功,要么全部失败.(dml语句简单的说就是增加,修改,删除
;dml语句没有查询语句)
事务和锁:
当执行事务操作时(dml语句),oralce会在被作用的表上加锁,防止其它用户改
表的结果,这里对我们用户来讲是非常重要的!
提交事务:
1)使用commit语句可以提交事务
2)当执行commit语句后,会确认事务的变化,并且结束事务,删除保存点,释放锁,
其它会话将可以查看到事务变化后的新数据
下面简单介绍在java上使用oracle事务管理
例子:从scott的sal-100 同时smith的sal+100
package javastudy;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class Test2 {
public static void main(String[] args) {
///事务案例
Connection conn = null;
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
conn = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:orcl", "scott", "lh621366");
conn.setAutoCommit(false);///设置默认不自动提交
Statement st = conn.createStatement();
///SCOTT的薪水 sal-100
st.executeUpdate("update emp set sal=sal-100 where ename='SCOTT'");
///SMITH的sal+100
int i = 7/0;///这里是为了抛出异常,为了证明事务提交的一致性(要么全部成功,要么全部失败)
(抛出异常后,回滚点会回到conn=null这里,所以下面执行的代码也不会生效)
st.executeUpdate("update emp set sal=sal+100 where ename='SMITH'");
///提交事务
conn.commit();///将st更新的这两个sql语句和int i=7/0这个语句当做一个整体事务来处理
st.close();
conn.close();
} catch (Exception e) {
try {
///如果发生异常,就回滚
conn.rollback();
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
e.printStackTrace();
}
}
}
阅读全文
0 0
- Oracle中事务处理
- Oracle中事务处理
- oracle中事务处理
- oracle中事务处理
- oracle中事务处理
- Oraclee 事务处理以及在c#中使用oracle的事务处理
- oracle事务处理
- oracle事务处理
- oracle事务处理
- Oracle 事务处理
- ORACLE 事务处理
- Oracle事务处理
- oracle----事务处理
- oracle事务处理
- Oracle学习笔记(十二)——oracle中事务处理
- ODP优化之Oracle事务处理中遇到的问题
- 在java代码中使用Oracle数据库的事务处理机制
- Oracle-数据库-事务处理基本原理
- CodeIgniter框架源码学习之模型类--Model.php
- shader ZTest ZWrite Early-z
- ORC资源
- 十大Intellij IDEA快捷键
- java bean中空的构造方法和有参数的构造方法意义
- oracle中事务处理
- java 获取某年某月有多少天
- mybatis+mysql8.0.7配置文件mybatis_config.xml
- JAVA的反射机制
- 用session0穿透解决windows服务打开当前桌面文件的问题
- delphi 流Stream 和 Variant 的转换函数
- MAC瘦身,XCODE手动清理
- 敏感词过滤
- 利用hexo在github上快速搭建个人博客