溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

mybatis調(diào)用oracle存儲(chǔ)過程

發(fā)布時(shí)間:2020-06-30 07:15:07 來源:網(wǎng)絡(luò) 閱讀:712 作者:guyu008 欄目:關(guān)系型數(shù)據(jù)庫(kù)

有輸入與輸出參數(shù)的存儲(chǔ)過程

oracle存儲(chǔ)過程部分代碼:

create or replace procedure PT_copy_Shipment_One_Data(

  oldShipmentId in  varchar ,

  servprovGid in varchar ,

  insertUser in varchar,

  resultShipmentId out varchar

)is

 newShipmentGid varchar2(50 );

 newShipmentXid varchar2(50 );

 newShipmentTypeGid varchar2(50 );

begin

          --執(zhí)行的PLSQL體

commit;--提交事物

Exception

   When others then

      Rollback;

end  PT_copy_Shipment_One_Data;



mybatis的Xml配置

注意:雖然有返回值,不需要知道設(shè)置返回參數(shù)類,詳情可看下面java代碼例子


<select  id= "callCoptShipment" parameterType ="map"  

           statementType="CALLABLE">

     <![CDATA[ 

{call PT_copy_Shipment_One_Data(

#{oldShipmentId,mode=IN,jdbcType=VARCHAR},

#{servprovGid,mode=IN,jdbcType=VARCHAR},

#{insertUser,mode=IN,jdbcType=VARCHAR},

#{resultShipmentId,mode=OUT,jdbcType=VARCHAR}

)} 

     ]]> 

</select >


Dao或者Service代碼


Map<String, String> parasMap = new HashMap<String, String>();

parasMap.put("oldShipmentId", para.get( "shipmentId"));

parasMap.put( "servprovGid", para.get("skdw"));//attr12

parasMap.put( "insertUser", Users.getCurrent());

parasMap.put( "resultShipmentId", "" );

//調(diào)用存儲(chǔ)過程

  this.getSqlSessionTemplate().

selectOne("com.otm.app.entity.pojo.ShipmentCost.callCoptShipment",parasMap);

parasMap.put("shipmentId", parasMap.get("resultShipmentId" ));

return parasMap;


如上標(biāo)紅的代碼,在mybatis不需要設(shè)置返回參數(shù),然后在java當(dāng)中調(diào)用存儲(chǔ)過程也不需要接受返回參數(shù),map參數(shù)當(dāng)中會(huì)自動(dòng)有。這是一個(gè)奇怪的地方。

                                                                       交流技術(shù)群號(hào):50567913

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI