日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Spring注解 TX聲明式事務實現過程解析

瀏覽:176日期:2023-09-12 18:49:35

環境搭建導入

maven依賴

<!--spring提供的數據庫操作工具--><dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>5.0.2.RELEASE</version></dependency><!--c3p0 數據庫連接池--><dependency> <groupId>com.mchange</groupId> <artifactId>c3p0</artifactId> <version>0.9.5.5</version></dependency><!--mysql連接器--><dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.48</version></dependency>

配置數據庫相關信息

@Configuration@ComponentScan('com.spring.tx')public class TxConfig { /** * 配置數據源 */ @Bean public DataSource dataSource() throws PropertyVetoException { ComboPooledDataSource comboPooledDataSource = new ComboPooledDataSource(); comboPooledDataSource.setUser('root'); comboPooledDataSource.setPassword('root'); comboPooledDataSource.setDriverClass('com.mysql.jdbc.Driver'); comboPooledDataSource.setJdbcUrl('jdbc:mysql:///test'); return comboPooledDataSource; } @Bean public JdbcTemplate jdbcTemplate() throws PropertyVetoException { //Spring對配置類做了特殊處理,多次調用給容器中加組件的方法,其實是從容器中找組件,并不會重新添加 return new JdbcTemplate(dataSource()); }}

添加數據訪問層、業務層

@Repositorypublic class UserDao { @Autowired private JdbcTemplate jdbcTemplate; public void saveUser(String name, Integer age) { String sql = 'insert into user(name, age) values(?, ?)'; jdbcTemplate.update(sql, name, age); }}

@Servicepublic class UserService { @Autowired private UserDao userDao; public void saveUser(){ String name = 'jack11'; Integer age = 19; userDao.saveUser(name, age); }}

添加測試類

public class TxTest { @Test public void test(){ ApplicationContext context = new AnnotationConfigApplicationContext(TxConfig.class); UserService userService = (UserService) context.getBean('userService'); userService.saveUser(); }}

事務問題

此時基本環境已經搭建好了,點擊運行,數據可以成功插入但是還沒有配置事務,沒有事務回滾會造成某些情況下數據出錯。在Spring注解中,可以在需要添加事務的方法或類上加@Transactional,并且開啟事務管理功能,即@EnableTransactionManagement,代碼如下:

修改UserService 的 saveUser 方法

@Transactionalpublic void saveUser(){ String name = 'jack11'; Integer age = 19; userDao.saveUser(name, age); //模擬異常 int i = 1 / 0;}

在配置類加上@EnableTransactionManagement

@Configuration@ComponentScan('com.spring.tx')@EnableTransactionManagementpublic class TxConfig {//省略數據源、jdbcTemplate的配置}

再次運行測試方法,會發現報錯了,但不是我們模擬的異常報錯,控制臺提示找不到bean

org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type ’org.springframework.transaction.PlatformTransactionManager’ available

我們還需要注冊一個事務管理器來管理事務,PlatformTransactionManager有很多實現類,在Spring 中 JdbcTemplate、Mybatis應該使用 DataSourceTransactionManager

Spring注解 TX聲明式事務實現過程解析

在配置類中再注冊一個組件,運行,事務生效

/** * 注冊事務管理器 */@Beanpublic PlatformTransactionManager platformTransactionManager() throws PropertyVetoException { return new DataSourceTransactionManager(dataSource());}

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

標簽: Spring
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产视频一区二| 久久久久久久久久久妇女 | 9999国产精品| 国产一区二区三区不卡视频网站 | 久久久91麻豆精品国产一区| 美腿丝袜亚洲三区| 麻豆91精品视频| 日韩中文首页| 激情五月综合| 亚洲精品日本| 久久不见久久见国语| 免费一二一二在线视频| 亚洲女同中文字幕| 日韩avvvv在线播放| 精品高清久久| 日韩一级精品| 日韩有码av| 神马午夜在线视频| 午夜久久av | 国产伦精品一区二区三区千人斩 | 亚洲日本免费电影| 精品国产一区二区三区2021| 欧美中文字幕一区二区| 7m精品国产导航在线| 久久精品国语| 国产欧美精品| 蜜桃伊人久久| 亚洲美女久久精品| 日韩国产欧美一区二区三区| 女生影院久久| 国产精品大片免费观看| 99成人在线| av资源亚洲| 久久国产生活片100| 成人久久久久| 欧美精品导航| 日本一区二区三区中文字幕| 国产99久久久国产精品成人免费| 国产免费播放一区二区| 在线看片一区| 免费日韩av片| 亚洲黄色在线| 欧美va亚洲va日韩∨a综合色| 欧美成人aaa| 国产调教精品| 日本aⅴ精品一区二区三区 | 亚洲性视频在线| 亚洲一级特黄| 成人免费电影网址| 日韩国产一区二区| 成人亚洲一区| 国产aⅴ精品一区二区四区| 国产精品17p| 欧美激情福利| 麻豆传媒一区二区三区| 久久wwww| 国产精品蜜芽在线观看| 色综合狠狠操| 日韩成人三级| 久久亚洲成人| 亚洲欧洲午夜| 久久久久国产精品一区三寸| 日韩av有码| 日本精品影院| 五月天综合网站| 日本欧美在线看| 日韩动漫一区| 久久中文字幕一区二区三区| 国产一区二区视频在线看| 91嫩草亚洲精品| 日韩在线中文| 久久亚洲视频| 国产精品日韩精品在线播放| 精品日产乱码久久久久久仙踪林| 福利欧美精品在线| 国精品一区二区三区| 91嫩草亚洲精品| 欧美一级精品| 最新国产拍偷乱拍精品| 欧美视频精品全部免费观看| 播放一区二区| 国产精品网在线观看| 欧美日韩少妇| 亚洲精选久久| 国产精品扒开腿做爽爽爽软件| 欧美国产免费| 欧美va亚洲va日韩∨a综合色| 日韩中文字幕区一区有砖一区| 欧美一级二级三级视频| 欧美成人精品三级网站| 蜜桃视频一区二区三区在线观看| 首页国产欧美久久| 日本成人一区二区| av在线日韩| 国产欧美日韩在线一区二区 | 欧美日中文字幕| 国产欧美一区二区三区国产幕精品| 中文字幕色婷婷在线视频| 久久亚洲图片| 日本韩国欧美超级黄在线观看| 91精品福利观看| 亚洲网站视频| 精品中文字幕一区二区三区| 日韩三区免费| 精品国产欧美日韩| 日本一区免费网站| 欧美日韩四区| 色在线视频观看| 美女精品久久| 日韩激情av在线| 国产精品社区| 婷婷成人在线| 香蕉视频亚洲一级| 国产精品tv| 国产精品一区二区三区av| 蜜臀久久99精品久久久久宅男| 欧美sss在线视频| 国产黄大片在线观看| 蜜桃久久精品一区二区| 国产精品91一区二区三区| 国产va在线视频| 精品国产中文字幕第一页| 国产精品一在线观看| 久久国产乱子精品免费女| 日韩美女国产精品| 蜜桃视频第一区免费观看| 不卡视频在线| 夜夜嗨网站十八久久| 黄色av日韩| 美日韩精品视频| 五月国产精品| 国产欧美一区二区三区国产幕精品| 日韩专区视频网站| 丝袜脚交一区二区| 日本亚洲视频| 欧美片第1页综合| 国产精品毛片久久久| 精品福利久久久| 久久美女性网| 亚洲在线一区| 欧美一区网站| 四季av一区二区凹凸精品| 欧美日韩尤物久久| 性一交一乱一区二区洋洋av| 香蕉久久一区| 国产96在线亚洲| 国产一区久久| 亚洲久久视频| 日韩成人一级| 最新中文字幕在线播放| 国产视频一区在线观看一区免费| 亚洲人成在线影院| 精品72久久久久中文字幕| 久久狠狠婷婷| 国产欧美视频在线| 国产精品av久久久久久麻豆网| 免费在线欧美视频| 国产一区2区| 中文不卡在线| 国产videos久久| 视频一区二区不卡| 成人午夜亚洲| 日韩在线电影| 蜜桃精品在线| 国产精品极品在线观看| 久久精品国产www456c0m| 91成人在线| 久久99伊人| 欧美日韩免费看片| 久久精品女人| 欧美一区二区三区久久| 99在线|亚洲一区二区| 国产v日韩v欧美v| 国产精品玖玖玖在线资源| 狠狠爱成人网| 日韩在线观看不卡| 国产精品xxx| 欧美精品中文| 欧美 日韩 国产一区二区在线视频| 精品一区二区三区免费看| 亚洲精品在线a| 三级欧美在线一区| 免费视频亚洲| 欧美日韩尤物久久| 国产h片在线观看| 精品淫伦v久久水蜜桃| 国产日韩亚洲| 国产精品亚洲产品| 777久久精品| 欧美日一区二区在线观看| 日韩国产在线不卡视频| 日韩三区四区| 国产麻豆精品| 少妇高潮一区二区三区99| 香蕉视频成人在线观看| 在线视频免费在线观看一区二区| 国产一区一一区高清不卡| 国产91精品对白在线播放| 999精品色在线播放| 激情91久久|