Spring Boot使用事務(wù)

Spring Boot實(shí)現(xiàn)事務(wù)特別特別簡(jiǎn)單,沒有多余操作,一個(gè)注解@Transactional搞定

依賴的Jar包pom.xml

Spring Boot中實(shí)現(xiàn)事務(wù)沒有額外的Jar包,還是基本的數(shù)據(jù)庫(kù)訪問包,比如mybatis

<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>1.3.2</version>
</dependency>
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.13</version>
</dependency>

注解事務(wù)@Transactional

@Service
public class PersonService {
    @Resource
    private PersonMapper personMapper;

    @Resource
    private CompanyMapper companyMapper;

    @Transactional(rollbackFor = {RuntimeException.class, Error.class})
    public void saveOne(Person person) {
        Company company = new Company();
        company.setName("tenmao:" + person.getName());
        companyMapper.insertOne(company);
        personMapper.insertOne(person);
    }
}

注解屬性

  • rollbackFor:觸發(fā)回滾的異常,默認(rèn)是RuntimeExceptionError
  • isolation: 事務(wù)的隔離級(jí)別,默認(rèn)是Isolation.DEFAULT也就是數(shù)據(jù)庫(kù)自身的默認(rèn)隔離級(jí)別,比如MySQL是ISOLATION_REPEATABLE_READ可重復(fù)讀

這樣就可以了,不需要其他配置。

ps:網(wǎng)絡(luò)上還說要在@SpringBootApplication上添加注解@EnableTransactionManagement,已經(jīng)不需要了

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容