【web】Spring中使用DataSourceTransactionManager手動提交或回滾事務
在使用spring進行web開發時,雖然spring提供的註解方式可以方便的處理很多原來需要手動提交或回滾的事務,但是註解方式有自己使用的侷限,比如在類的內部呼叫方法時,註解方式處理的事務就無法被觸發,此時可能需要手動處理相關資料庫的事務。本文記錄在spring開發時使用Spring提供的DataSourceTransactionManager進行事務提交或回滾處理。主要步驟如下:
1、注入DataSourceTransactionManager
在java物件中注入DataSourceTransactionManager物件,如使用如下註解方式注入:
@Autowired
// @Qualifier("transactionManager")
private DataSourceTransactionManager transactionManager;
DataSourceTransactionManager的建立就不在這裡描述了;
2、事務處理
手動開啟事務,捕獲異常,手動提交或回滾事務,示例程式碼如下:
public void updateDatabase(CertificateRegisteRequest request,
final CertificateRegisteResponse response) {
DefaultTransactionDefinition def = new DefaultTransactionDefinition();
def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED);
TransactionStatus status = transactionManager.getTransaction(def); // get
try {
if (logger.isDebugEnabled()) {
logger.debug("request=" + request.toString());
logger.debug("response=" + response.toString());
}
//do some things.
//.............................................
// commit.
transactionManager.commit(status);
} catch (Exception e) {
transactionManager.rollback(status);
}
}
相關文章
- java 事務提交/回滾Java
- Spring Transaction詳解 – 手動回滾事務Spring
- MySQL實現事務的提交和回滾MySql
- Spring Data JPA中事務回滾意外RollbackExceptionSpringException
- Spring事務回滾情況Spring
- Spring中@Transactional事務回滾例項及原始碼Spring原始碼
- Spring中的事務提交事件Spring事件
- 關於Spring事務回滾的問題Spring
- SQL Server 事務及回滾事務SQLServer
- WebForm中C#事務回滾的例子WebORMC#
- Spring事務不能回滾的深層次原因Spring
- Spring Series---事務中JDBC是否自動提交解析SpringJDBC
- ORACLE 死事務的回滾Oracle
- spring事務不回滾Spring
- @Transactional註解管理事務和手動提交事務
- oracle檢視回滾的事務Oracle
- 在SQL SERVER中實現事務的部分回滾SQLServer
- 使用FLASHBACK_TRANSACTION_QUERY查詢回滾事務SQLSQL
- spring事務增強,事務回滾如何判斷?希望在前端上有個提示Spring前端
- sqlserver遇到回滾事務的操作策略SQLServer
- 關於事務回滾註解@Transactional
- 不能回滾的Redis事務還能用嗎Redis
- JDBC 事務(二)回滾到儲存點JDBC
- DBUNITS的單元測試事務回滾
- Oracle提交和回滾處理Oracle
- Spring Transaction詳解 – 異常發生時的事務回滾機制Spring
- Spring中@Transactional事務使用陷阱Spring
- spring boot 顯示處理事務回滾Spring Boot
- MySql事務無法回滾的原因有哪些MySql
- long長事務回滾的模擬與定位
- zt_Oracle事務rollback回滾時間估算Oracle
- T-SQL——關於事務回滾的方式SQL
- spring中異常的使用--事務Spring
- 關於ORACLE大型事務回滾的幾個點Oracle
- spring事務裡面開啟執行緒插入,報錯了是否會回滾?Spring執行緒
- Spring事務專題(四)Spring中事務的使用、抽象機制及模擬Spring事務實現Spring抽象
- Spring Boot 事物回滾Spring Boot
- Spring分散式事務XA事務(兩段提交2PC)實現Spring分散式