当前位置:首页>维修大全>综合>

mybatis中如何注入事务(mybatis流式查询如何开启新事务)

mybatis中如何注入事务(mybatis流式查询如何开启新事务)

更新时间:2024-05-28 13:24:46

mybatis中如何注入事务

Mybatis中可以通过使用Spring框架来注入事务。在Spring中,可以使用@Transactional注解来标记需要进行事务管理的方法,使其成为一个事务操作。

同时,还需在Spring配置文件中配置事务管理器,将其与数据源绑定。

当调用被@Transactional注解标记的方法时,Spring会自动开启事务,执行方法,如果方法执行成功,则提交事务,否则回滚事务,保证数据的一致性。这样,就可以在Mybatis中实现事务注入。

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

}

}。

更多栏目