2018-07-27 springboot事务的使用(简单)

在Spring Boot中,当我们使用了spring-boot-starter-jdbc或spring-boot-starter-data-jpa依赖的时候,框 架会自动默认分别注入DataSourceTransactionManager或JpaTransactionManager。所以我们不需要任何额外 配置就可以用@Transactional注解进行事务的使用, 部分说需要首先使用注解 @EnableTransactionManagement 开启事务支持后才能正常使用,但是我使用的过程中好像不需要设置这个

如下, 如果不添加@Transactional, 可以添加第一条, 第二条出错,第三条也添加不进去。
如果添加了@Transactional, 那么因为第二条出错,数据库一条数据也不会添加
package im.bool.friendyou;

import im.bool.friendyou.dao.TestMapper;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.transaction.annotation.Transactional;

/**
* #author      : ivanl001
* #creator     : 2018-07-27 11:24
* #description : 事务测试
**/
@RunWith(SpringRunner.class)
@SpringBootTest
public class SpringbootTransactionTest {

  @Autowired
  private TestMapper testMapper;

  @Test
  @Transactional
  public void transactionTest01() {
      testMapper.insert(new im.bool.friendyou.model.dbModel.Test(6, new Byte("12")));
      testMapper.insert(new im.bool.friendyou.model.dbModel.Test(7, new Byte("69999")));
      testMapper.insert(new im.bool.friendyou.model.dbModel.Test(8, new Byte("12")));
  }
}

你可能感兴趣的:(2018-07-27 springboot事务的使用(简单))