事务——Transaction,其实指的是一组操作,里面包含许多个单一的逻辑,只有有一个逻辑没有执行成功,那就都算失败,所有数据都回归到最初的状态(回滚)
为了确保逻辑的成功,就需要有事务,比如转账
commit——提交事务,将数据写入到磁盘中,目前在内存中
rollback——数据回滚,数据回归到原始状态
事务主要针对连接来的
jdbc连接对象有个setAutoCommit(boolean)方法可以设置是否自动提交事务
commit()——提交事务
rollback()——回滚事务
事务的特性:ACID
原子性:事务中的包含逻辑,不可分割
一致性:事务执行前后,数据完成性
隔离性:事务在执行期间,不应该受到其他事务的影响
持久性:事务执行成功后,数据应该保存在磁盘中
安全隐患,不考虑隔离级别设置,会出现以下问题:
读:脏读,不可重复读,幻读
脏读:一个事务读到另外一个事务还没提交的数据
不可重复读