事务控制

示例:

    // move data from temp_table to work_tabletry {sqlMapClient.startTransaction();T03SlipWk orderForm = (T03SlipWk) session.get( "SLIP_WK" );moveOrderFormToWorkTable( orderForm.getSlipId() );moveProductsToWorkTable( orderForm.getSlipId() );deleteProductsInTempTable( orderForm.getSlipId() );deleteOrderFormInTempTable( orderForm.getSlipId() );sqlMapClient.commitTransaction();}catch( SQLException e){LOG.error( e );return ERROR;}finally{sqlMapClient.endTransaction();}// delete datas from T03 by slipIdvoid deleteOrderFormInTempTable( String slipId ) throws SQLException {assert slipId != null;T03SlipWkDAO dao = new T03SlipWkDAOImpl( sqlMapClient );T03SlipWkExample example = new T03SlipWkExample();T03SlipWkExample.Criteria criteria = example.createCriteria();criteria.andSlipIdEqualTo( slipId );dao.deleteByExample( example );}// delete datas from T04 by slipIdvoid deleteProductsInTempTable( String slipId ) throws SQLException {assert slipId != null;T04CaseDtlWkDAO dao = new T04CaseDtlWkDAOImpl( sqlMapClient );T04CaseDtlWkExample example = new T04CaseDtlWkExample();T04CaseDtlWkExample.Criteria criteria = example.createCriteria();criteria.andSlipIdEqualTo( slipId );dao.deleteByExample( example );}// Move datas from T04 to T06 by slipIdvoid moveProductsToWorkTable( String slipId ) throws SQLException {assert slipId != null;T06CaseDtlTrnDAO dao = new T06CaseDtlTrnDAOImpl( sqlMapClient );dao.insertFromT04( slipId );}// Move datas from T03 to T05 by slipIdvoid moveOrderFormToWorkTable( String slipId ) throws SQLException {assert slipId != null;T05SlipTrnDAO dao = new T05SlipTrnDAOImpl( sqlMapClient );dao.insertFromT03( slipId );//used for test transication//throw new SQLException("tttttttttttt");}

四条单独的SQL 语句操作:

moveOrderFormToWorkTable( orderForm.getSlipId() );
moveProductsToWorkTable( orderForm.getSlipId() );
deleteProductsInTempTable( orderForm.getSlipId() );
deleteOrderFormInTempTable( orderForm.getSlipId() );

要么都成功,要么都失败!实践证明,上面的事务控制成功!

位置:BPP / jp.co.snjp.kddi.ht.action.CheckResultAction.checkComplete()

两表操作将SQL语句写入单表

如:moveOrderFormToWorkTable( orderForm.getSlipId() ) 就是 insert  into ... select ...

则只需要配置, insert  操作对应的表(t05_slip_trn_SqlMap.xml)。

  <!-- add by GongQiang,将数据从T03转到T05 --><insert id="insert_from_t03" parameterClass="java.lang.String" >INSERT INTO T05_SLIP_TRN(SLIP_ID,BARCODE,COMP_CD1,COMP_NM1,COMP_NM2,COMP_NM3,SHP_DATE1,SLIP_NUM1,SLIP_DTL_NUM1,PROD_CD1,PROD_NM1,LOT1,SHP_VOL1,FUNC_ID,USR_ID,USR_GRP,WK_REG_DATE,REG_DATE,UPDATE) SELECT SLIP_ID,BARCODE,COMP_CD1,COMP_NM1,COMP_NM2,COMP_NM3,SHP_DATE1,SLIP_NUM1,SLIP_DTL_NUM1,PROD_CD1,PROD_NM1,LOT1,SHP_VOL1,FUNC_ID,USR_ID,USR_GRP,REG_DATE,REG_DATE,UPDATE FROM T03_SLIP_WK WHERE SLIP_ID = #SLIP_ID:VARCHAR#</insert>

然后再对应的 dao (T05SlipTrnDAOImpl)中添加方法:

    // add by GongQiang,将数据从T03转到T05 public void insertFromT03( String slipId ) throws SQLException{sqlMapClient.insert("t05_slip_trn.insert_from_t03", slipId );}

iBatis 事务控制 与 两表操作将SQL语句写入单表相关推荐

  1. mysql语句创建学生表_用sql语句创建学生表的方法是什么

    用sql语句创建学生表的方法是什么 发布时间:2020-08-25 11:53:33 来源:亿速云 阅读:123 作者:小新 小编给大家分享一下用sql语句创建学生表的方法是什么,希望大家阅读完这篇文 ...

  2. sql语句实现单表省市级连

    单表省市级连,查询学校的学生姓名并拼接详细地址(附带表) select s.id 编号,s.name 学生姓名,s.age 年龄,sch.name 学校名字,concat_ws('-',pro.nam ...

  3. mysql查询子表的语句_MySQL基本SQL语句之单表查询、多表查询和子查询

    一.简单查询: 1.基本语法: SELECT * FROM tb_name;//查询全部 SELECT field1,field2 FROM tb_name; //投影 SELECT [DISTINC ...

  4. mysql多表查询sql语句怎么写_MySQL基本SQL语句之单表查询、多表查询和子查询

    一.简单查询: 基本语法: SELECT * FROM tb_name;查询全部 SELECT field1,field2 FROM tb_name; 投影 SELECT [DISTINCT] * F ...

  5. mysql 单表 子查询_MySQL基本SQL语句之单表查询、多表查询和子查询 | 旺旺知识库...

    一.简单查询: 基本语法: SELECT * FROM tb_name;查询全部 SELECT field1,field2 FROM tb_name; 投影 SELECT [DISTINCT] * F ...

  6. mysql 子表 关联查询语句_MySQL基本SQL语句之单表查询、多表查询和子查询

    一.简单查询: 基本语法:SELECT * FROM tb_name;查询全部 SELECT field1,field2 FROM tb_name; 投影 SELECT [DISTINCT] * FR ...

  7. 笔试 -- SQL语句之横竖表转换

    文章目录 一.表结构 二.竖表转横表 1-1 case when then 1-2 pivot 三.横表转竖表 1-1 UNION ALL 1-2 unpivot 最近笔试中有 [将竖表转换为横表]的 ...

  8. mysql查询主键sql语句_MySQL数据库-表操作-SQL语句(一)

    1. 数据库操作与存储引擎 1.1   数据库和数据库对象 数据库对象:存储,管理和使用数据的不同结构形式,如:表.视图.存储过程.函数.触发器.事件等. 数据库:存储数据库对象的容器. 数据库分两种 ...

  9. oracle图书操作、sql语句查询+授权、视图、索引、表操作

    oracle图书操作.sql语句查询+授权.视图.索引.表操作 一.创建一张表book,表结构为(总编号,分类号,书名,作者,出版单位,单价),插入若干记录 二.创建一张表reader,表结构为(借书 ...

最新文章

  1. 10.无重复字符的最长子串---使用滑动窗口方法和哈希表来解决
  2. 学习《数据结构》要爬的第一步梯子
  3. linux-权限操作,数字法
  4. 荣耀9X Pro外观设计图曝光:升降前置摄像头/保留3.5mm耳机孔
  5. 《架构师》反思:系统可靠性
  6. 微型计算机系统视频适配器为,计算机硬件基础1-微型计算机系统组成(含教材6,8,9章内容).ppt...
  7. 善用佳软站长:畅谈大数据时代的知识管理
  8. 关于Selenium2Library库导入PyCharm无法自动感知关键字的解决方法
  9. windows下删除文件:提示无法删除文件,无法读源文件或磁盘
  10. html框架之间空隙,Span之间空隙原因和解决办法
  11. 天行健,君子以自强不息;地势坤,群子以厚德载物。
  12. 开源社与 Dev.Together 2022
  13. 练习4-11 统计素数并求和(素数的函数)
  14. 在湖北考取的交通类安全员B证可以调转河南省企业使用吗?
  15. 5.MCScanX 与circos下载、安装、运用
  16. 元祖python_Python-数据类型-元祖
  17. 工作9年程序员面试华为要薪1万,华为员工:公司没这么低工资的岗.
  18. 离散数学 09.02 带有输出的有限状态机
  19. c语言malloc,calloc,realloc函数介绍
  20. 知乎访问mysql_百万级别知乎用户数据抓取与分析之PHP开发

热门文章

  1. 开源开放 | 细粒度可循证医学文档知识融合表示和推理(CCKS2021)
  2. Android官方开发文档Training系列课程中文版:分享文件之请求一个共享文件
  3. Android官方开发文档Training系列课程中文版:分享文件之配置文件共享
  4. tensorflow4 代价函数、dropout、优化器
  5. [导入]流氓软件案落定 “很棒小秘书”终审败诉
  6. 用源生的JavaScript编写一个异步的ajax库
  7. Shell脚本-自动化部署反向代理、WEB、nfs
  8. object-c 代理反向传值
  9. 深入浅出requireJS-1
  10. 一张图看懂AR至GL数据流