日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

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

發布時間:2024/7/23 数据库 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 iBatis 事务控制 与 两表操作将SQL语句写入单表 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

事務控制

示例:

// 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语句写入单表的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。