事务的原子性、一致性、独立性及持久?br />事务的原子性是指一个事务要么全部执?要么不执?也就是说一个事务不可能只执行了一半就停止?比如你从取款机取?q个事务可以分成两个步骤:1划卡,2出钱.不可能划了卡,而钱却没出来.q两步必d时完?要么׃完成.
事务的一致性是指事务的q行q不改变数据库中数据的一致?例如,完整性约束了a+b=10,一个事务改变了a,那么b也应该随之改?
事务的独立性是指两个以上的事务不会出现交错执行的状?因ؓq样可能会导致数据不一?
事务的持久性是指事务运行成功以?ql的更新是永久的.不会无缘无故?a decor-none"="" target="_blank" rel="nofollow" data-word="0" style="color: #2d64b3; text-decoration: none; ">回滚.
ii. Non-Repeatable Reads 不可重复?nbsp;
一个事务多ơ读取同一数据Q在该事务还未结束时Q另一个事务也对该数据q行了操作,而且在第一个事务两ơ次d之间Q第二个事务Ҏ据进行了更新Q那么第一个事务前后两ơ读取到的数据是不同的,q样造成了不可重复读?/span>
iii. Phantom Reads qd?nbsp;
W一个数据正在查询符合某一条g的数据,q时Q另一个事务又插入了一条符合条件的数据Q第一个事务在W二ơ查询符合同一条g的数据时Q发现多了一条前一ơ查询时没有的数据,仿佛q觉一Pq就是像读?/span>
iv. 非重复度和像读的区?nbsp;
非重复读是指同一查询在同一事务中多ơ进行,׃其他提交事务所做的修改或删除,每次q回不同的结果集Q此时发生非重复诅R?A transaction rereads data it has previously read and finds that another committed transaction has modified or deleted the data. )
qdL指同一查询在同一事务中多ơ进行,׃其他提交事务所做的插入操作Q每ơ返回不同的l果集,此时发生qd诅R?A transaction reexecutes a query returning a set of rows that satisfies a search condition and finds that another committed transaction has inserted additional rows that satisfy the condition. )
表面上看Q区别就在于非重复读能看见其他事务提交的修改和删除,而像能看见其他事务提交的插入?nbsp;
2) DEFAULT Q默认)
q是一个PlatfromTransactionManager默认的隔ȝ别,使用数据库默认的事务隔离U别.另外四个与JDBC的隔ȝ别相对应
3) READ_UNCOMMITTED Q读未提交)
q是事务最低的隔离U别Q它允许另外一个事务可以看到这个事务未提交的数据。这U隔ȝ别会产生脏读Q不可重复读和像读?nbsp;
4) READ_COMMITTED Q读已提交)
保证一个事务修改的数据提交后才能被另外一个事务读取。另外一个事务不能读取该事务未提交的数据。这U事务隔ȝ别可以避免脏d玎ͼ但是可能会出C可重复读和像读?nbsp;
5) REPEATABLE_READ Q可重复读)
q种事务隔离U别可以防止脏读Q不可重复读。但是可能出现像读。它除了保证一个事务不能读取另一个事务未提交的数据外Q还保证了不可重复读
6) SERIALIZABLEQ串行化Q?nbsp;
q是p最高代价但是最可靠的事务隔ȝ别。事务被处理为顺序执行。除了防止脏读,不可重复dQ还避免了像读?nbsp;
7) 隔离U别解决事务q行引v的问?nbsp;
Dirty reads non-repeatable reads phantom reads
Serializable 不会 不会 不会
REPEATABLE READ 不会 不会 ?nbsp;
READ COMMITTED 不会 ??nbsp;
Read Uncommitted ???/span>