JdbcTemplate
- 作用:用於和資料庫互動,實現對錶的CRUD操作
- 使用方法:通過新建物件或xml配置
- 操作方式
- 增刪查改
- 增,改,刪都使用update方法
- 查,使用query方法。第二個引數使用
BeanPropertyRowMapper<T>(T.class)
返回內容。queryForObject()查詢返回一行一列。
- 例項程式碼
- 增刪查改
- 說明:
- 其實 JdbcTemplate 的使用和大多數類的使用一樣,都是通過配置IoC容器實現物件的建立和方法的呼叫。和QueryRunner類似,只是把BeanHandleList<>()改成了BeanPropertyMapper<>()
Spring 中事務控制
自編程式碼配置
- 可以使用自己程式設計實現,利用AOP程式設計,指定切面和切入點,使用環繞通知自定義設定事務開啟,提交,回滾,釋放的順序。這個過程使用到了動態代理思想。
使用xml配置spring中的事務控制
使用步驟如下:
- 配置事務管理器。這一步的目的是讓事務管理器和資料庫連線。
- 使用之前用過的bean標籤配置。
- 配置事務的通知。給事務通知新增唯一的id,並指定事務管理器。
<tx:advice>
標籤
- 配置AOP。先配置通用的切入點表示式,然後指定該切入點使用事務通知。
- 使用之前用過的配置方式。在
<aop:config>
中配置。
- 使用之前用過的配置方式。在
- 在事務通知中配置事務的屬性。
- isolation: 指定事務的隔離級別,預設值是DEFAULT,表示使用資料庫的預設隔離級別
- propagation:指定事務的傳播行為,預設值是REQUIRED,表示一定會有事務,增刪改可用,查詢方法選擇SUPPORTS
- read-only:指定事務是否只讀,查詢是設為TRUE,預設值是false
- timeout:指定事務的超時時間,預設值是-1,不超時。指定時以秒為單位
- rollback-for:指定一個異常,產生該異常時事務回滾,否則事務不回滾;沒有預設值表示任何異常都回滾。
- no-rollback-for:指定一個異常,產生該異常時事務不回滾,否則事務回滾;沒有預設值表示任何異常都回滾。
- 程式碼詳見:例項程式碼
基於註解的事務控制
使用步驟如下:
- 配置事務管理器。需要使用bean標籤配置,因為事務管理器在匯入的jar包內。
- 開啟spring對註解配置事務的支援
<tx:annotation-driven transaction-manager="transactionManager"></tx:annotation-driven>
- 在需要開啟事務支援的類上註解
@Transactional
,並配置相應事務屬性。- 程式碼詳見:例項程式碼
基於純註解的事務控制
要把原先bean.xml
中的一些配置轉化為註解型別的配置。
比如先前已經將事務用@Transactional配置,以及之前使用過的@Service,@Repository來配置業務層,持久層的物件。
對於資料庫配置,我們需要建立相關的配置類,實現對DataSource,以及JdbcTemplate的配置。資料庫相關的資料需要寫在properties檔案中。
我們還需要使用@EnableTransactionManagement開啟純事務配置。
-程式碼詳見:例項程式碼
本作品採用《CC 協議》,轉載必須註明作者和本文連結