您好,登錄后才能下訂單哦!
有輸入與輸出參數(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
免責(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)容。