zoukankan      html  css  js  c++  java
  • spring中注解事务认识

    1.配置事务管理器

    <!-- 设定transactionManager事务管理器 -->
        <bean id="txManager"
            class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
            <property name="dataSource" ref="dataSource"></property>
        </bean>
        <!-- 启动spring注解功能,需要cglib-nodep-x.x_x.jar支持 -->
        <tx:annotation-driven transaction-manager="txManager" />

    2.Service层实现类

    @Service("partsMgrService")
    @Transactional
    public class PartsMgrServiceImpl implements PartsMgrService {
        Logger log = Logger.getLogger(PartsMgrServiceImpl.class);
        
        @Autowired
        PartsTypeDAO partsTypeDao;
        @Autowired
        PartsBrandDAO partsBrandDao;
                       //省略代码
    @Override
     public boolean addPartsType(PartsTypeDTO dto) throws Exception{
      //赋予值
      Map map = new HashMap();
      map.put("typeName", dto.getTypeName());
      map.put("fParentId", dto.getPid());
      map.put("typeCode", dto.getTypeCode());
      map.put("describe", dto.getDescribe());
      map.put("flag", dto.getFlag());
      map.put("sortNum", dto.getSortNum());
      map.put("typeFlag", dto.getTypeFlag());
      //测试事务
    //  Map map2 = new HashMap();
    //  map2.put("fPartstypeId", 16);
    //  map2.put("brandName", "aaa334");
    //  map2.put("brandCode", "bbb234");
    //  map2.put("describe", "ccc");
    //  map2.put("brandLoge", "ddd");
    //  log.info("添加品牌参数: " + map2);
    //  
    //  partsBrandDao.addPartsBrand(map2);
      
      partsTypeDao.addPartsType(map);
      
      
      return true;
     }

    }

    @Transactional注解标签~!!

    3.Dao层实现类

    public interface PartsTypeDAO {
         //需要抛出异常DataAccessException
        public boolean addPartsType(Map<String, Object> map) throws DataAccessException;
    
    }

    如果在Dao层实现类中try{}catch(Exception e){}已经处理异常,那么事务是没有效果的~!
    事务是在Service业务逻辑层处理的,只针对Dao层,所以Action层不能够直接去调Dao代码的原因呢,这也是代码分层体系编写的原因。

  • 相关阅读:
    神经网络学习笔记(2)
    从机器学习到深度学习资料整理
    在进行机器学习建模时,为什么需要验证集(validation set)?
    Python-绘制3D柱形图
    MIT FiveK图像转化--DNG到TIFF,TIFF到JPEG
    MIT-Adobe FiveK Dataset 图片自动下载
    matplotlib基础
    Numpy基础
    一个电磁感应小实验
    windows 代理服务器的搭建,提供Android 端访问公网.
  • 原文地址:https://www.cnblogs.com/simpledev/p/3525961.html
Copyright © 2011-2022 走看看