Java Spring事務(wù)使用及驗(yàn)證過(guò)程詳解
事務(wù),只要是為了保證數(shù)據(jù)的原子性。避免出現(xiàn)臟數(shù)據(jù)。
下面來(lái)講解下spring是如何使用事務(wù)的。
1.配置事務(wù)。這里采用的是注解的模式
<!-- 配置事務(wù)管理器 ,如果你暫時(shí)未使用到事務(wù)可以不配置,次以下內(nèi)容均可以在不適用事務(wù)的情況下刪除 --><bean > <property name='dataSource' ref='dataSource'/></bean> <!-- 開啟事務(wù)行為 --><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('調(diào)用 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('執(zhí)行了m01...'); //1.mybatis 的自己調(diào)用方法/* try { mybatisTest(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }*/ //2.spring + mybatis整合后的調(diào)用 return null; }
以上就基本可以搞定了,驗(yàn)證配置是否成功的話,可以在不加注解的時(shí)候插入兩條數(shù)據(jù),后面一條數(shù)據(jù)是會(huì)報(bào)錯(cuò)的。
如果不使用事務(wù)的話,會(huì)發(fā)現(xiàn)第一條插入成功到DB里去了,然后在插入第二條的時(shí)候,程序報(bào)錯(cuò)。
如果這里使用@Transactional 開啟事務(wù),那么會(huì)發(fā)現(xiàn)兩條數(shù)據(jù)都插入不了,直接報(bào)錯(cuò)了,這里事務(wù)就成功的啟用了起來(lái)。
@Transactional
(1)這里說(shuō)明一下,有的把這個(gè)注解放在類名稱上面了,這樣你配置的這個(gè)@Transactional 對(duì)這個(gè)類中的所有public方法都起作用.
(2)@Transactional 方法方法名上,只對(duì)這個(gè)方法有作用,同樣必須是public的方法
(3) 數(shù)據(jù)庫(kù)引擎要支持事務(wù),如果是MySQL,注意表要使用支持事務(wù)的引擎,比如innodb,如果是myisam,事務(wù)是不起作用的
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. jsp實(shí)現(xiàn)textarea中的文字保存換行空格存到數(shù)據(jù)庫(kù)的方法2. 在JSP中使用formatNumber控制要顯示的小數(shù)位數(shù)方法3. jsp+servlet簡(jiǎn)單實(shí)現(xiàn)上傳文件功能(保存目錄改進(jìn))4. ASP常用日期格式化函數(shù) FormatDate()5. XML入門的常見問(wèn)題(二)6. CSS3實(shí)例分享之多重背景的實(shí)現(xiàn)(Multiple backgrounds)7. 得到XML文檔大小的方法8. 利用CSS3新特性創(chuàng)建透明邊框三角9. 如何在jsp界面中插入圖片10. ASP.NET Core實(shí)現(xiàn)中間件的幾種方式
