SSM项目 事务支持 #私藏项目实操分享#

2021年11月22日 阅读数:3
这篇文章主要向大家介绍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. 直接运行测试代码,发现两条数据都添加成功java

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

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

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