最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Spring中的事務管理如何配置

 更新時間:2019年11月20日 10:11:00   作者:聞窗  
這篇文章主要介紹了spring中的事務管理如何配置,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

這篇文章主要介紹了spring中的事務管理如何配置,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

在springboot中,使用事務非常的簡單,因為springboot已經幫我們配置好了,只需要加上注解@Transactional即可

在spring中我們需要做一些配置:主要有三點:

  • @Transactional:在相應的方法上加上這個注解
  • @EnableTransactionManagement:在配置類中加上,開啟事務管理
  • 需要在配置類中加入PlatformTransactionManager

PlatformTransactionManager接口定義了兩個方法commit和rollback

public interface PlatformTransactionManager {
  TransactionStatus getTransaction(TransactionDefinition var1) throws TransactionException;

  void commit(TransactionStatus var1) throws TransactionException;

  void rollback(TransactionStatus var1) throws TransactionException;
}

首先創(chuàng)建一個配置類:MainTxConfig

@EnableTransactionManagement //開啟事務管理
@ComponentScan("com.springTx") //掃描組件,這里掃描UserDao和UserService
@Configuration
public class MainTxConfig {

  /**
   * 配置數(shù)據(jù)源
   * @return
   * @throws Exception
   */
    @Bean
    public DataSource dataSorce() throws Exception {
      ComboPooledDataSource comboPooledDataSource = new ComboPooledDataSource();
      comboPooledDataSource.setUser("root");
      comboPooledDataSource.setPassword("123456");
      comboPooledDataSource.setDriverClass("com.mysql.jdbc.Driver");
      comboPooledDataSource.setJdbcUrl("jdbc:mysql://localhost:3306/study");
      return comboPooledDataSource;
    }

    /**
     * jdbc模板操作數(shù)據(jù)庫,這里需要獲取到數(shù)據(jù)源,dataSorce()是從容器中獲取已有的組件,而不是重新又創(chuàng)建一個數(shù)據(jù)源
     * @return
     * @throws Exception
     */
    @Bean
    public JdbcTemplate jdbcTemplate() throws Exception {
      return new JdbcTemplate(dataSorce());
    }

    @Bean
    public PlatformTransactionManager platformTransactionManager() throws Exception {
      return new DataSourceTransactionManager(dataSorce());
    }
}

UserService

@Service
public class UserService {

  @Autowired
  private UserDao userDao;

  @Transactional
  public void insertUser(){
    userDao.insert();
    int n = 1/0;
    System.out.println("插入成功");
  }
}

UserDao:

@Repository
public class UserDao {

  @Autowired
  private JdbcTemplate jdbcTemplate;

  public void insert(){
    String sql = "insert into user (name,age) value(?,?)";
    String name = UUID.randomUUID().toString().substring(1,7);
    jdbcTemplate.update(sql,name, 20);
  }
}

測試:

public class Txtest {
  @Test
  public void test(){
    //創(chuàng)建容器
    AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplicationContext(MainTxConfig.class);
    UserService userService = applicationContext.getBean(UserService.class);
    userService.insertUser();
    applicationContext.close();
  }
}

當出現(xiàn)異常時,事務會進行回滾操作。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • springboot打包jar和war包的教程圖解

    springboot打包jar和war包的教程圖解

    這篇文章主要介紹了springboot打包jar和war包的方法,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-06-06
  • SpringBoot集成ip2region實現(xiàn)ip白名單的代碼示例

    SpringBoot集成ip2region實現(xiàn)ip白名單的代碼示例

    ip2region v2.0 - 是一個離線IP地址定位庫和IP定位數(shù)據(jù)管理框架,10微秒級別的查詢效率,提供了眾多主流編程語言的 xdb 數(shù)據(jù)生成和查詢客戶端實現(xiàn),本文介紹了SpringBoot集成ip2region實現(xiàn)ip白名單的代碼工程,需要的朋友可以參考下
    2024-08-08
  • 關于Selenium的UI自動化測試屏幕截圖功能實例代碼

    關于Selenium的UI自動化測試屏幕截圖功能實例代碼

    今天小編就為大家分享一篇關于Selenium的UI自動化測試屏幕截圖功能實例代碼,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • Java中集合List、Set和Map的入門詳細介紹

    Java中集合List、Set和Map的入門詳細介紹

    Java集合主要分為三種類型:Set(集)、List(列表)和Map(映射),下面這篇文章主要給大家介紹了關于Java中集合List、Set和Map的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-01-01
  • SpringBoot初始化加載配置的八種方式總結

    SpringBoot初始化加載配置的八種方式總結

    在日常開發(fā)時,我們常常需要 在SpringBoot應用啟動時執(zhí)行某一段邏輯,如獲取一些當前環(huán)境的配置或變量、向數(shù)據(jù)庫寫入一些初始數(shù)據(jù)或者連接某些第三方系統(tǒng),確認對方可以工作,那么在實現(xiàn)初始化邏輯代碼時就需要小心了,所以本文介紹了SpringBoot初始化加載配置的方式
    2024-12-12
  • Java方法參數(shù)傳遞如何實現(xiàn)

    Java方法參數(shù)傳遞如何實現(xiàn)

    這篇文章主要介紹了Java方法參數(shù)傳遞如何實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-05-05
  • 詳解Kotlin的空指針處理

    詳解Kotlin的空指針處理

    這篇文章主要介紹了詳解Kotlin的空指針處理的相關資料,需要的朋友可以參考下
    2017-06-06
  • 利用Java實現(xiàn)調用http請求

    利用Java實現(xiàn)調用http請求

    在實際開發(fā)過程中,我們經常需要調用對方提供的接口或測試自己寫的接口是否合適。本文就為大家準備了幾個java調用http請求的幾種常見方式,需要的可以參考一下
    2022-08-08
  • Java畢業(yè)設計實戰(zhàn)之二手書商城系統(tǒng)的實現(xiàn)

    Java畢業(yè)設計實戰(zhàn)之二手書商城系統(tǒng)的實現(xiàn)

    這是一個使用了java+JSP+Springboot+maven+mysql+ThymeLeaf+FTP開發(fā)的二手書商城系統(tǒng),是一個畢業(yè)設計的實戰(zhàn)練習,具有在線書城該有的所有功能,感興趣的朋友快來看看吧
    2022-01-01
  • java split結果去除空字符串的方法實現(xiàn)

    java split結果去除空字符串的方法實現(xiàn)

    在Java開發(fā)中,我們經常需要對字符串進行分割操作,本文主要介紹了java split結果去除空字符串的方法實現(xiàn),具有一定的參考價值,感興趣的可以了解一下
    2023-10-10

最新評論

乌兰察布市| 汉中市| 昭通市| 仙游县| 石泉县| 托克托县| 正宁县| 正安县| 额济纳旗| 新宁县| 大渡口区| 福清市| 什邡市| 五指山市| 泽库县| 遂溪县| 静宁县| 百色市| 易门县| 峨眉山市| 西乡县| 永宁县| 平利县| 哈巴河县| 阳谷县| 茶陵县| 上杭县| 稷山县| 夏河县| 五常市| 大冶市| 南投县| 沭阳县| 桂平市| 分宜县| 夏邑县| 贡山| 巴东县| 三穗县| 富源县| 扎赉特旗|