什么是事务?
事务(Transaction)是并发控制的单位,是用户定义的一个操作序列。这些操作要么都做,要么都不做,是一个不可分割的工作单位。通过事务,SQL Server能将逻辑相关的一组操作绑定在一起,以便服务器保持数据的完整性。
详见:http://baike.baidu.com/view/1298364.htm?fr=aladdin
搜索关键字:数据库事务
事务隔离级别
数据库事务的隔离级别有4个,由低到高依次为Read uncommitted、Read committed、Repeatable read、Serializable,这四个级别可以逐个解决脏读、不可重复读、幻读这几类问题。
详见:http://blog.csdn.net/fg2006/article/details/6937413
搜索关键字:事务隔离级别
动手实验,深刻理解事务隔离级别
要深刻理解事务的隔离级别,就一定要动手作实验,亲自看一看不同隔离级别下能解决什么问题。如果看了下边链接中的内容,还是无法顺利完成实验的,请找同事帮忙。
详见:http://www.itpub.net/thread-779363-1-1.html
搜索关键字:事务隔离级别例子
spring框架对事务的支持
1、声明式事务配置
(1)、applicationContext_datasource.xml
<!-- Spring bean configuration for LazyConnectionDataSourceProxy --> <bean id="dataSource" class="org.springframework.jdbc.datasource.LazyConnectionDataSourceProxy"> <property name="targetDataSource"> <ref local="mainDataSource" /> </property> </bean> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource" /> </bean> <tx:annotation-driven transaction-manager="transactionManager" />
(2)、service实现类上或方法上添加事务注解
@Transactional
public class ArchiveMarkingObserver {
}
@Override
@Transactional
public void generateClassArchive(String classId, String topicSetId) {
}
2、事务隔离级别配置
@Transactional(isolation=Isolation.REPEATABLE_READ)
3、事务传播机制
@Transactional(propagation=Propagation.REQUIRES_NEW)
详见:http://kingj.iteye.com/blog/1680350
搜索关键字:spring事务传播机制