不使用事物
定义好的cat类和dao 在junit测试中代码 cat 的构造器
public Cat(Integer id, Integer catAge, String catName) {
this.id = id;
this.catAge = catAge;
this.catName = catName;
}
public Cat(Integer catAge, String catName) {
this.catAge = catAge;
this.catName = catName;
}
test 代码
@Test
public void transactionTest() throws Exception{
Cat cat1 = new Cat(1,"cat1");
Cat cat2 = new Cat(1,"cat2");
Cat cat3 = new Cat(1,"cat3");
Cat cat4 = new Cat(1,"cat12345678");
Cat cat5 = new Cat(1,"cat5");
catService.addCat(cat1);
catService.addCat(cat2);
catService.addCat(cat3);
catService.addCat(cat4);
catService.addCat(cat5);
}
注意 catname 数据库长度是10 则cat4 会报错
而cat1 cat2 cat3 都插入成功
而若这是一个希望保证完整性操作的情况 下,只需开启事物
注解
使用事物
1搭建好springboot集成好数据库交互层
2开启事物很简单 在启动类上加上注解@EnableTransactionManagement
3然后在访问数据库的Service方法上添加注解 @Transactional 便可 @Transactional
注解
@Transactional
@Override
public void addCat(Cat cat) throws Exception {
catMapper.insert(cat);
}
测试同样报错 只是数据库并没有cat123了
注意:本文归作者所有,未经作者允许,不得转载