mybatis注入事務首先要在 spring-mybatis的配置文件添加 事務支持,和事務annotation支持,從而實現功能的完善。
注意:如果是mysql請使用innodb innodb 支持事務功能,myisam 不支持。
<!-- transaction support-->
<!-- PlatformTransactionMnager -->
<bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>
<!-- enable transaction annotation support -->。
注解,直接在類上面寫注解表示整個類的方法都支持事務
@Transactional
@Component
public class UserSerImpl extends BaseServiceImpl<User> implements UserSer{
也可寫在方法上
@Transactional(readOnly = false, propagation = Propagation.REQUIRES_NEW)
public void updateFoo(Foo foo) {
// do something
}
也可同時在類和方法上
@Transactional(readOnly = true)
public class DefaultFooService implements FooService {
public Foo getFoo(String fooName) {
// do something
}
// these settings have precedence for this method
//方法上注解屬性會覆蓋類注解上的相同屬性
@Transactional(readOnly = false, propagation = Propagation.REQUIRES_NEW)
public void updateFoo(Foo foo) {
// do something
}
}。