暑期自學 Day 20 | Spring (六)

Borris發表於2020-07-17

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 協議》,轉載必須註明作者和本文連結

相關文章