欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

springboot編程式事務(wù)TransactionTemplate的使用說明

 更新時間:2022年06月14日 11:18:41   作者:yzh_1346983557  
這篇文章主要介紹了springboot編程式事務(wù)TransactionTemplate的使用說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

TransactionTemplate的使用

總結(jié):在類中注入TransactionTemplate,即可在springboot中使用編程式事務(wù)。

spring支持編程式事務(wù)管理和聲明式事務(wù)管理兩種方式。

編程式事務(wù)管理使用TransactionTemplate或者直接使用底層的PlatformTransactionManager。對于編程式事務(wù)管理,spring推薦使用TransactionTemplate。

聲明式事務(wù)管理建立在AOP之上的。其本質(zhì)是對方法前后進行攔截,然后在目標方法開始之前創(chuàng)建或者加入一個事務(wù),在執(zhí)行完目標方法之后根據(jù)執(zhí)行情況提交或者回滾事務(wù)。對于聲明式事務(wù)管理,springboot中推薦使用@Transactional注解。

1.為何用?

多數(shù)情況下,方法上聲明@Transactional注解聲明事務(wù)即可,簡單、快捷、方便,但@Transactional聲明式事務(wù)的可控性太弱了,只可在方法或類上聲明,做不到細粒度的事務(wù)控制。

如果一個方法前10條sql都是select查詢語句,只有最后2條sql是update語句,那么只對最后2條sql做事務(wù)即可。

2.如何用

? ? ? ? <dependency>
? ? ? ? ? ? <groupId>org.mybatis.spring.boot</groupId>
? ? ? ? ? ? <artifactId>mybatis-spring-boot-starter</artifactId>
? ? ? ? ? ? <version>2.2.0</version>
? ? ? ? </dependency>

springboot中引入mybatis-spring-boot-starter依賴包即可。

mybatis-spring-boot-starter依賴包中包含了spring-boot-starter-jdbc的依賴,spring-boot-starter-jdbc中包含DataSourceTransactionManager事務(wù)管理器以及自動注入配置類DataSourceTransactionManagerAutoConfiguration。

代碼中使用,在使用bean中注入TransactionTemplate即可:

@Service
public class TestServiceImpl {
? ? @Resource
? ? private TransactionTemplate transactionTemplate;
? ? public Object testTransaction() {
? ? ? ? //數(shù)據(jù)庫查詢
? ? ? ? dao.select(1);
? ? ? ? return transactionTemplate.execute(status -> {
? ? ? ? ? ? //數(shù)據(jù)庫新增
? ? ? ? ? ? dao.insert(2);
? ? ? ? ? ? dao.insert(3);
? ? ? ? ? ? return new Object();
? ? ? ? });
? ? }
}

TransactionTemplate簡單使用

/**
 * 事務(wù)模板
 * @author zz
 *
 */ 
public class TransactionTemplateSupport {
	@Autowired
	private PlatformTransactionManager transactionManager;	
	private TransactionTemplate requiredTransactionTemplate;	
	protected TransactionTemplate getRequiresNewTransactionTemplate(){
		if (requiredTransactionTemplate == null){
			requiredTransactionTemplate = new TransactionTemplate(transactionManager);
			requiredTransactionTemplate.setPropagationBehavior(TransactionTemplate.PROPAGATION_REQUIRED);
		//	requiredTransactionTemplate.setReadOnly(true);
		//	requiredTransactionTemplate.setTimeout(30000);
		}
		
		return requiredTransactionTemplate;
	} 
}
@Service
public class TestTransaction extends TransactionTemplateSupport  { 
    @Autowired
    private JdbcTemplate jdbcTemplate ;
 
    @Autowired
    private TransactionTemplate transactionTemplate;
 
   // @Transactional
    public void test(){
 
        jdbcTemplate.execute("insert into user value (1,'aaa','aaa','aaa')"); 
        int i = 1/0; 
        jdbcTemplate.execute("insert into user value (2,'aaa','aaa','aaa')"); 
    } 
 
    public void test2(){ 
      getRequiresNewTransactionTemplate()
      //  transactionTemplate
                .execute(new TransactionCallback<Void>() {
 
            @Override
            public Void doInTransaction(TransactionStatus status) {  
                jdbcTemplate.execute("insert into user value (11,'BBBB','aaa','aaa')");
 
                int i = 1/0; 
                jdbcTemplate.execute("insert into user value (21,'aaa','NNNN','aaa')");  
                return null;
            }
        });
    }  
}

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。 

相關(guān)文章

  • Spring MVC的項目準備和連接建立方法

    Spring MVC的項目準備和連接建立方法

    SpringWebMVC是基于Servlet API的Web框架,屬于Spring框架的一部分,主要用于簡化Web應(yīng)用程序的開發(fā),SpringMVC通過控制器接收請求,使用模型處理數(shù)據(jù),并通過視圖展示結(jié)果,感興趣的朋友跟隨小編一起看看吧
    2024-10-10
  • SpringBoot使用Atomikos技術(shù)整合多數(shù)據(jù)源的實現(xiàn)

    SpringBoot使用Atomikos技術(shù)整合多數(shù)據(jù)源的實現(xiàn)

    這篇文章主要介紹了SpringBoot使用Atomikos技術(shù)整合多數(shù)據(jù)源的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • Nacos配置的多文件加載與共享配置方式

    Nacos配置的多文件加載與共享配置方式

    這篇文章主要介紹了Nacos配置的多文件加載與共享配置方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • SWT JFace Bookmark 制作

    SWT JFace Bookmark 制作

    SWT JFace Bookmark 制作
    2009-06-06
  • ant打包jar文件腳本分享

    ant打包jar文件腳本分享

    本文介紹的ant腳本是用來打包jar文件,做完JAVA應(yīng)用一定會用到這個,需要的朋友可以參考下
    2014-03-03
  • SpringCloud微服務(wù)網(wǎng)關(guān)限流方式

    SpringCloud微服務(wù)網(wǎng)關(guān)限流方式

    這篇文章主要介紹了SpringCloud微服務(wù)網(wǎng)關(guān)限流方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • 詳解Spring 基于 Aspect 注解的增強實現(xiàn)

    詳解Spring 基于 Aspect 注解的增強實現(xiàn)

    本篇文章主要介紹了詳解Spring 基于 Aspect 注解的增強實現(xiàn),非常具有實用價值,需要的朋友可以參考下
    2017-04-04
  • Java基礎(chǔ)入門篇之邏輯控制練習(xí)題與猜數(shù)字游戲

    Java基礎(chǔ)入門篇之邏輯控制練習(xí)題與猜數(shù)字游戲

    猜數(shù)字游戲是一款經(jīng)典的游戲,該游戲說簡單也很簡單,說不簡單確實也很難,這篇文章主要給大家介紹了關(guān)于Java基礎(chǔ)入門篇之邏輯控制練習(xí)題與猜數(shù)字游戲的相關(guān)資料,需要的朋友可以參考下
    2023-06-06
  • Java getResource()如何獲取class文件目錄位置

    Java getResource()如何獲取class文件目錄位置

    這篇文章主要介紹了Java getResource()如何獲取class文件目錄位置,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • Java Linkedlist原理及實例詳解

    Java Linkedlist原理及實例詳解

    這篇文章主要介紹了Java Linkedlist原理及實例詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-01-01

最新評論