SSM 事务支持

第一步:mybatis.xml中添加支持事务的配置

<!-- 配置事务管理器 -->
<bean id="txManager"
      class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    <property name="dataSource" ref="ds"/>
</bean>
<!-- 配置基于注解的声明式事务 -->
<tx:annotation-driven transaction-manager="txManager"/>

第二步:Service实现类提供用来测试事务支持与否的方法

@Service
public class UserServiceImpl implements UserService {
    @Resource
    private UserMapper userMapper;

    //@Transactional   //--------①
    @Override
    public int insert(User record) {
        User user1 = new User();
        user1.setNickname("aa");
        user1.setAccount("aaaaaaa");
        userMapper.insert(user1);

        //System.out.println(3/0);   //----------②

        User user2 = new User();
        user2.setNickname("bb");
        user2.setAccount("bbbbbbb");
        userMapper.insert(user2);
        return 1;
    }
 }

测试代码

@ExtendWith(SpringExtension.class)
@ContextConfiguration("/applicationContext.xml")
class UserServiceTest {
    @Resource
    private UserService userService;
    @Test
    void insert(){
        userService.insert(null);
    }
}

具体测试工作

  1. 直接运行测试代码,发现两条数据都添加成功

  2. 仅去掉编号①行首的注释,运行测试代码,发现程序不报错,两条数据都添加进数据库了

  3. 仅去掉编号②行首的注释,运行测试代码,发现程序报错,但在第一条数据添加成功

  4. 同时去掉编号①和编号②行首的注释,运行测试代码,发现程序报错,一条数据也没有添加进数据库

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>