事务
在mysql中只有使用了InnoDB存储引擎支持事物的
事务处理可以用来维护数据库的完整性
如果执行了成批量的sql语句,要么全部执行,要么全部不执行。
事务主要是来管理insert,update,delete.如果数据有可能发生变化,才会管理事务。如果数据不发生变化,不需要管理事务。
***四大特性***:
原子性A:一个事务中所有的操作,要么全部完成,要么全部不完成。
一致性C:在事务的开始和结束以后,数据库的完整性没有被破坏。
隔离性I:数据库允许多个事务同时对对数据进行修改,每个事务之间是隔离互不影响。
持久性D事务处理结束之后,对数据的修改是永久的,持久性存储。
***事务的提交和回滚***:
提交:批量的sql执行完毕,提交给数据库,数据持久性的保存起来
回滚:批量的sql中,有一部分执行成功,一部分失败,成功的部分就应该回滚。
truncate:不可以撤销,不可以回滚
delete:可以回滚
数据一旦提交,不可以回滚。
mysql和jdbc都是默认自动提交事务。
连接关闭,提交事务。
***关闭事务的默认提交***
conn.setAutoCommit(false);
***手动提交事务***
conn.commit();
在catch里一般会协商事务的回滚:conn.rollback();