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

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

java - mybatis怎么處理事務(wù)問(wèn)題

瀏覽:250日期:2024-01-21 11:38:58

問(wèn)題描述

我用的mybatis是基于SqlSessionTemplate實(shí)現(xiàn)的,如下:

@Repository('daoSupport')public class DaoSupport implements BaseDAO { @Resource(name = 'sqlSessionTemplate') private SqlSessionTemplate sqlSessionTemplate;/** * 保存對(duì)象 * @param str * @param obj * @return * @throws Exception */ public Object save(String str, Object obj){return sqlSessionTemplate.insert(str, obj); }/** * 批量更新 * @param str * @param obj * @return * @throws Exception */ public Object batchSave(String str, List objs){return sqlSessionTemplate.insert(str, objs); }/** * 修改對(duì)象 * @param str * @param obj * @return * @throws Exception */ public Object update(String str, Object obj){Integer count=sqlSessionTemplate.update(str, obj);

@Service

public class OrderInfoService { @Resource(name = 'daoSupport') private DaoSupport dao;@SuppressWarnings('unchecked') public List<PageData> getPerson() { List<PageData> a =(List<PageData>)dao.findAllList( 'OrderInfoMapper.getOrderInfo'); return a; } public void save(PageData pd){dao.save('OrderInfoMapper.saveOrderInfo', pd); } public void update(PageData pd){dao.update('OrderInfoMapper.updateOrder', pd); }@SuppressWarnings('unchecked') public List<PageData> list(PageData pd){return (List<PageData>)dao.findForList('OrderInfoMapper.getOrderInfo', pd); }

在xml文件里面寫(xiě)對(duì)應(yīng)sql的Mapper,我想在調(diào)用service層的方法操作數(shù)據(jù)庫(kù)時(shí),幾條sql語(yǔ)句同時(shí)commit,其中有一條失敗則全部不執(zhí)行,就和jdbc那樣先設(shè)置不自動(dòng)commit,然后在commit那種,要在哪里配置或調(diào)用啥方法實(shí)現(xiàn)?

問(wèn)題解答

回答1:

請(qǐng)百度spring的事務(wù)管理

第一種,配置事務(wù)管理的規(guī)則,具體怎么寫(xiě)可以再百度,一兩句說(shuō)不清

<bean class='org.springframework.jdbc.datasource.DataSourceTransactionManager'><property name='dataSource' ref='dataSource'/> </bean> <aop:config><aop:pointcut expression='execution(* com.web..*.services..*Impl.*(..))'/><aop:advisor advice-ref='txAdvice' pointcut-ref='interceptorPointCuts'/> </aop:config> <tx:advice transaction-manager='transactionManager'><tx:attributes> <tx:method name='save*' propagation='REQUIRED' rollback-for='java.lang.Exception'/> <tx:method name='update*' propagation='REQUIRED' rollback-for='java.lang.Exception'/> <tx:method name='insert*' propagation='REQUIRED' rollback-for='java.lang.Exception'/> <tx:method name='delete*' propagation='REQUIRED' rollback-for='java.lang.Exception'/>for='java.lang.Exception'/> --></tx:attributes> </tx:advice>

第二種使用注解@Transactional

<bean class='org.springframework.jdbc.datasource.DataSourceTransactionManager'><property name='dataSource' ref='dataSource'/> </bean> <!--聲明使用注解式事務(wù)--> <tx:annotation-driven transaction-manager='transactionManager'/>回答2:

Programmatic Transaction Management MyBatis SqlSession provides youwith specific methods to handle transactions programmatically. Butwhen using MyBatis-Spring your beans will be injected with a Springmanaged SqlSession or a Spring managed mapper. That means that Springwill always handle your transactions.

You cannot call SqlSession.commit(), SqlSession.rollback() orSqlSession.close() over a Spring managed SqlSession. If you try to doso, a UnsupportedOperationException exception will be thrown. Notethese methods are not exposed in injected mapper classes.

Regardless of your JDBC connection’s autocommit setting, any executionof a SqlSession data method or any call to a mapper method outside aSpring transaction will be automatically committed.

If you want to control your transactions programmatically please referto chapter 10.6 of the Spring reference manual. This code shows how tohandle a transaction manually using the PlatformTransactionManagerdescribed in section 10.6.2.

mybatis-spring

回答3:

Spring好像不允許手動(dòng)提交事務(wù),Spring容器會(huì)自動(dòng)管理事務(wù)!java - mybatis怎么處理事務(wù)問(wèn)題

回答4:

//使用事務(wù)處理,訂單及貨物訂單必須同時(shí)插進(jìn)2個(gè)表里面@Transactional(rollbackFor=Exception.class)public void save(PageData pd,Map<String,Integer> map,String uuid,int Uid){ dao.save('OrderInfoMapper.saveOrderInfo', pd); OrderGood orderGood=new OrderGood(); for(String gid:map.keySet()){Goods good=goodService.findOne(gid);orderGood.setGname(good.getGname());//Integer a=map.get(gid);orderGood.setOgamount(map.get(gid));orderGood.setGid(Integer.parseInt(gid));orderGood.setOgtotalprize(map.get(gid)*good.getGprice());orderGood.setUid(Uid);orderGood.setOid(uuid);dao.save('OrderInfoMapper.saveOrderGood', orderGood);} }使用@Transactional 注解則成功解決問(wèn)題,此注解是spring 的事務(wù)管理,使用前先配置如下:

<bean class='org.springframework.jdbc.datasource.DataSourceTransactionManager'><property name='dataSource' ref='dataSource'/> </bean> <!--聲明使用注解式事務(wù)--> <tx:annotation-driven transaction-manager='transactionManager'/> 只需要在service層方法中執(zhí)行多條mybatis的mapper并加上注解即可,發(fā)生異常則此方法的事務(wù)會(huì)回滾

標(biāo)簽: java
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
视频一区欧美日韩| 国产视频一区二| 精品日本视频| 精品一区二区三区亚洲 | 日韩国产专区| а√天堂8资源在线| 欧美成a人片免费观看久久五月天| 日本aⅴ免费视频一区二区三区| 欧美精品一区二区久久| 最新日韩av| 蜜臀av一区二区在线免费观看| 免费人成精品欧美精品| 亚洲精品亚洲人成在线观看| 日本欧美韩国一区三区| 国产精品玖玖玖在线资源| 国产成人77亚洲精品www| 日韩欧美午夜| 婷婷精品进入| 男女男精品网站| 日韩欧美中文字幕在线视频| 久久丁香四色| 色婷婷久久久| 老司机精品久久| 亚洲欧美日本国产| 国产亚洲一区二区三区啪| 精品一区二区三区中文字幕视频| av资源中文在线| 五月天久久久| 色狠狠一区二区三区| 国产精品亚洲综合色区韩国| 国产一区二区三区不卡av| 成人免费电影网址| 亚洲欧美日韩国产一区| 欧美有码在线| 亚洲深夜视频| 一区二区三区网站| 久久婷婷国产| 欧美精品自拍| 日韩av字幕| 在线天堂资源www在线污| 欧美日韩四区| 国产剧情在线观看一区| www.com.cn成人| 亚洲免费激情| 国产精品毛片视频| 国产一区亚洲| 蜜臀av国产精品久久久久| 日韩欧美中文字幕在线视频| 神马久久午夜| 蜜臀91精品一区二区三区| 亚洲91在线| 色综合五月天| 免费看欧美美女黄的网站| 日本va欧美va瓶| 国产精品99一区二区三| aa国产精品| 久久精品国产999大香线蕉| 不卡中文一二三区| 国产精品久久久久av蜜臀| 精品欧美久久| 免费在线观看一区| 亚洲免费婷婷| 欧美国产美女| 日韩精品第一| 欧美亚洲国产激情| 国产精品美女在线观看直播| 午夜国产一区二区| 国产极品一区| 亚洲精品99| 久久中文字幕一区二区三区| 美女国产精品| 肉色欧美久久久久久久免费看| 亚洲乱码视频| 日韩av免费| 国产精品亚洲片在线播放| 黑丝一区二区三区| 97精品视频在线看| 欧美永久精品| 石原莉奈一区二区三区在线观看| 首页国产精品| 天堂俺去俺来也www久久婷婷| 肉色欧美久久久久久久免费看| 天堂精品久久久久| 欧美精品高清| 国产精品日韩精品中文字幕| 99在线精品免费视频九九视| 国产a久久精品一区二区三区| 亚洲精品日本| 图片区亚洲欧美小说区| 精品视频国内| 911亚洲精品| 在线国产一区| 欧美久久天堂| 欧美精品不卡| 日韩1区2区3区| 99在线|亚洲一区二区| 日韩视频网站在线观看| 国产精品99久久免费| 91久久中文| 午夜精品成人av| 麻豆成人91精品二区三区| 色8久久久久| 亚洲一区亚洲| 久久一级电影| av高清不卡| 精品国产aⅴ| 欧美欧美黄在线二区| 亚洲综合中文| 宅男噜噜噜66国产日韩在线观看| 色婷婷色综合| 国产精品国产三级在线观看| 精品免费av| 91国内精品| 国产精品三上| 欧美jjzz| 欧美日韩在线观看视频小说| 欧美亚洲日本精品| 国产一区二区三区天码| 老司机免费视频一区二区| 日韩二区在线观看| 四虎精品永久免费| 亚洲免费毛片| 日韩有吗在线观看| 香蕉视频成人在线观看| 999在线观看精品免费不卡网站| 日韩高清成人| 日韩不卡免费高清视频| 久久男人天堂| 国内不卡的一区二区三区中文字幕| 国产精品任我爽爆在线播放| 欧美三级第一页| 欧美日韩夜夜| 国产精品任我爽爆在线播放| 久久av影视| 精品国产乱码久久久久久樱花| 久久99久久久精品欧美| 美腿丝袜在线亚洲一区| 久久不卡国产精品一区二区| 久久久91麻豆精品国产一区| 狂野欧美性猛交xxxx| 成人日韩av| 在线一区av| 亚洲午夜久久久久久尤物| 91麻豆精品| 欧美亚洲国产一区| 三级亚洲高清视频| 欧美一区网站| 精品三级在线| 卡一卡二国产精品| 91久久国产| 蜜桃国内精品久久久久软件9| 亚洲精品成人一区| 欧美伊人影院| 国产精品久久久久久久久妇女| 精品中文字幕一区二区三区| 国产精品成人自拍| 欧美~级网站不卡| 日韩动漫一区| 亚洲精品在线观看91| 国产精东传媒成人av电影| 亚洲欧美日韩国产一区| 天堂av在线| 日韩亚洲精品在线观看| 日韩欧美二区| 亚洲天堂久久| 日韩av一区二区三区四区| 亚洲尤物在线| 成人国产精品| 日韩精品一区二区三区中文字幕| 日韩精品一卡| 国产中文欧美日韩在线| 蜜桃视频在线观看一区二区| 丝袜诱惑一区二区| 日韩精品视频中文字幕| 美女久久精品| 9国产精品视频| 久久亚洲精品中文字幕| 日韩精品久久久久久| 欧美日韩三区| 久久网站免费观看| 99久久婷婷| 亚洲精品国模| 日韩精品中文字幕一区二区| 日韩av午夜在线观看| 国产精品亚洲综合色区韩国| 麻豆免费精品视频| 美女精品久久| 欧美一区自拍| 久久亚洲视频| 蜜臀国产一区二区三区在线播放 | 久久亚洲精品伦理| 久久99青青| 日韩欧美精品一区二区综合视频| 欧美精选一区二区三区| 快播电影网址老女人久久| 中文字幕在线免费观看视频| 欧美精品不卡| 精品国产18久久久久久二百| 久久99高清| 精品国产aⅴ|