JDBCTemplate 事務控制

2021-10-10 05:38:28 字數 577 閱讀 7352

**專案場景:**批量匯入,前端解析excel資料,然後批量傳入到後端,後端根據資料進行解析,然後在表和關聯表進行操作。當對一行資料操作時,如果有錯誤資訊則捕獲異常,則不插入該條資訊,繼續走下。excel單行資料出錯時,要進行回滾,不僅要在單錶中回滾,還要在關聯表中回滾。

問題:如何控制事務?如果單錶插入資料成功,關聯表失敗,如果把該單錶的資料也回滾,還不能保證前面已經執行完的資料再回滾。

解決:專案使用的是jdbctemplate,因為不要拋異常,所以使用try-catch捕獲異常

**:trycatch(exception e)

分析:事務控制是丟擲runtimeexception(),會進行回滾,例如,除數為0.則會對多條執行sql進行回滾,但是這樣效果不是很好。

我們也可以手動設定事務的回滾transactionaspectsupport.currenttransactionstatus().setrollbackonly();

通過設定事務的狀態,達到事務的回滾,最後一條資料執行失敗,前面的資料也會回滾。

jdbctemplate與事務管理

net.sourceforge.jtds.jdbc.driver jdbc jtds sqlserver test changeit 配置中包含了三個節點 datasource 這裡我們採用了apache dhcp元件提供的datasource實現,並為其配置了 jdbc驅動 資料庫url 使用者名...

JdbcTemplate 宣告式事務控制

jdbc是spring提供的專門操作關係型資料庫的模板,由於運算元據庫是有事務控制的,所以需要匯入jdbc和tx的pom包 xml配置 常用方法 jdbctemplate.update sql,params 宣告式事務 通過xml或者註解的方式,宣告配置 程式設計式事務 需要手動編寫事務 控制事務 ...

spring教程 JdbcTemplate詳解

jdbctemplate模板與dbutils工具模擬較類似.jdbc org.springframework.jdbc.core.jdbctemplate hibernate3.0 org.springframework.orm.hibernate3.hibernatetemplate ibatis...