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

Java Spring事務使用及驗證過程詳解

瀏覽:2日期:2022-08-20 10:26:11

事務,只要是為了保證數據的原子性。避免出現臟數據。

下面來講解下spring是如何使用事務的。

1.配置事務。這里采用的是注解的模式

<!-- 配置事務管理器 ,如果你暫時未使用到事務可以不配置,次以下內容均可以在不適用事務的情況下刪除 --><bean > <property name='dataSource' ref='dataSource'/></bean> <!-- 開啟事務行為 --><tx:annotation-driven transaction-manager='transactionManager' />

2.配置就基本搞定了,然后就是在service或者service的方法上使用@Transactional定義是否需要是否管理就行了。

@Transactional @Override public String userInfoData(String id) { // TODO Auto-generated method stub System.out.print('調用 dao層方法'); UserInfo arr = loginDao.getUser(1); System.out.println('arr id = '+ arr.getId()); System.out.println('arr Username = '+ arr.getUsername()); MoneyInfo money = moneyDao.getmoney(1); moneyDao.InsertMony(500); loginDao.InsertUser(3, 'Tigger'); System.out.println('money = '+ money.getMoney()); System.out.println('money += '+ money.getMoney()); Logger log = Logger.getLogger(UserServiceImpl.class); log.info('執行了m01...'); //1.mybatis 的自己調用方法/* try { mybatisTest(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }*/ //2.spring + mybatis整合后的調用 return null; }

 以上就基本可以搞定了,驗證配置是否成功的話,可以在不加注解的時候插入兩條數據,后面一條數據是會報錯的。

如果不使用事務的話,會發現第一條插入成功到DB里去了,然后在插入第二條的時候,程序報錯。

如果這里使用@Transactional 開啟事務,那么會發現兩條數據都插入不了,直接報錯了,這里事務就成功的啟用了起來。

@Transactional

(1)這里說明一下,有的把這個注解放在類名稱上面了,這樣你配置的這個@Transactional 對這個類中的所有public方法都起作用.

(2)@Transactional 方法方法名上,只對這個方法有作用,同樣必須是public的方法

(3) 數據庫引擎要支持事務,如果是MySQL,注意表要使用支持事務的引擎,比如innodb,如果是myisam,事務是不起作用的

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

標簽: Java
相關文章:
国产综合久久一区二区三区