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);
}
}
具体测试工作
-
直接运行测试代码,发现两条数据都添加成功
-
仅去掉编号①行首的注释,运行测试代码,发现程序不报错,两条数据都添加进数据库了
-
仅去掉编号②行首的注释,运行测试代码,发现程序报错,但在第一条数据添加成功
-
同时去掉编号①和编号②行首的注释,运行测试代码,发现程序报错,一条数据也没有添加进数据库
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
二维码