iBatis 事务控制 与 两表操作将SQL语句写入单表
来源:互联网 发布:300271华宇软件 编辑:程序博客网 时间:2024/06/08 07:01
事务控制
示例:
// 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语句写入单表
- SQL单表操作语句
- 常用的SQL语句大全-单表操作
- SQL语句-01-数据库操作/单表增删改查
- 两表测试SQL语句
- SQL单表查询语句
- SQL批处理与事务控制
- 数据操作与事务控制
- 采用事务控制多sql语句同步
- 记录两张数据库表及Ibatis操作
- SQL之更新操作及事务控制
- ibatis-2.3.4.726学习(一) 单表对象操作
- ibatis 在控制台上写sql语句 log4j配置
- C#中事务批量操作sql语句
- Ibatis,Mybatis利用log4j将SQL语句打印在控制台
- Ibatis,Mybatis利用log4j将SQL语句打印在控制台
- Ibatis,Mybatis利用log4j将SQL语句打印在控制台
- SpringMVC+ibatis数据库事务控制
- Gopher 应用实现步骤
- 互联网女皇Mary Meeker眼中的互联网趋势(PPT)
- VMware虚拟机共享文件夹的使用图解
- 条带化(Striping)
- 梅捷SY-APU-E24主板小试
- iBatis 事务控制 与 两表操作将SQL语句写入单表
- Sheets与WorkSheets的区别
- git:out of memory,malloc failed
- 哈哈
- 用户 'IIS APPPOOL\DefaultAppPool' 登录失败
- 网站变灰代码
- 马云的18罗汉与史玉柱的4个火枪手
- 开发人员一定要加入收藏夹的网站(转自http://blog.csdn.net/songkexin/article/details/4828055)
- bash的诡异语法