一、事务概述
1.什么是事务
一件事情有n个组成单元,要不这n个组成单元同时成功,要不n个单元就同时失败,就是将n个组成单元放到一个事务中.
2.mysql的事务
默认的事务:一条sql语句就是一个事务 默认就开启事务并提交事务
手动事务:
1)显示的开启一个事务:start transaction
可以执行多条sql,此时如果查看数据库,发现已经发生了变化,但其实这个是假的,并没有真正更新到存放数据库的磁盘上,而是存储在了日志文件中,相当于临时记一下。
2)事务提交:commit代表从开启事务到事务提交 中间的所有的sql都认为有效 真正的更新数据库
3)事务的回滚:rollback 代表事务的回滚 从开启事务到事务回滚 中间的所有的 sql操作都认为无效数据库没有被更新
3 . Oracle数据库事务不自动提交
二、JDBC事务操作
默认是自动事务:
执行sql语句:executeUpdate() ---- 每执行一次executeUpdate方法 代表 事务自动提交
通过jdbc的API手动事务:
开启事务:conn.setAutoComnmit(false);
提交事务:conn.commit();
回滚事务:conn.rollback();
注意:控制事务的connnection必须是同一个
执行sql的connection与开启事务的connnection必须是同一个才能对事务进行控制