宣告式的事務管理是基於aop的,在springboot中可以通過@transactional註解的方式獲得支援,這種方式的優點是:
1)非侵入式,業務邏輯不受事務管理**的汙染。
2)方法級別的事務回滾,合理劃分方法的粒度可以做到符合各種業務場景的事務管理。
我們在springboot+mybatis+druid基礎上,加上事務功能。在j2ee的三層架構中,通常是在service層中新增事務。
在設計service層的時候,應該合理的抽象出方法包含的內容。然後將方法用@trasactional註解注釋,預設的話在丟擲exception.class異常的時候,就會觸發方法中所有資料庫操作回滾,當然這指的是增、刪、改。當然,@transational方法是可以帶引數的,具體的引數解釋如下:
屬性型別
描述value
string
可選的限定描述符,指定使用的事務管理器
propagation
enum: propagation
可選的事務傳播行為設定
isolation
enum: isolation
可選的事務隔離級別設定
readonly
boolean
讀寫或唯讀事務,預設讀寫
timeout
int (in seconds granularity)
事務超時時間設定
rollbackfor
class物件陣列,必須繼承自throwable
導致事務回滾的異常類陣列
rollbackforclassname
類名陣列,必須繼承自throwable
導致事務回滾的異常類名字陣列
norollbackfor
class物件陣列,必須繼承自throwable
不會導致事務回滾的異常類陣列
norollbackforclassname
類名陣列,必須繼承自throwable
不會導致事務回滾的異常類名字陣列
示例:
@service
public class testservice
@transactional
public void updatetest(long id,string name) throws exception
}
@enabletransactionmanagement
public static void main(string args)
}
springboot mybatis 多資料來源配置
首先 配置檔案 配置資料來源local,other為連線名稱 spring.datasource.local.url jdbc postgresql spring.datasource.local.username admin spring.datasource.local.password 666...
spring boot mybatis配置檔案開發
之前寫了乙個註解版開發的,現在在乙個配置檔案開發。我直接把 貼下面 根據id查詢單個資訊 public orders getorders integer id 新增單個資訊 mybatis config.xml的配置 insert into orders user id,number,oreatet...
Spring Boot Mybatis 使用列舉類
記錄一下,在實際專案引用列舉的步驟 可以參照以前我總結的部落格 為什麼要使用列舉?需要建立以下檔案 檔案描述 inte ce ienum class enumkeytypehandler 繼承 basetypehandler的自定義列舉類 class 實體bean 資料庫對應的po,將需要用列舉表示...