mybatis呼叫儲存過程及返回值獲取

2021-09-02 16:11:10 字數 1232 閱讀 8691

mybatis呼叫儲存過程及返回值獲取

儲存過程的返回結果直接放在 傳入引數的map中(paramcuskey)

呼叫前呼叫後

//類似用mybatis內建的插入方法自動返回主鍵一樣

,(之前有set主鍵的話就不返回插入後的值了,直接是set值

,)返回儲存過程輸出引數

,#)} //這裡是儲存過程接收返回結果的寫入map中的字段

]]>  

public string getcuskey(mapparam);

mapparamcuskey = new hashmap();

paramcuskey.put("inpara", "customer_key="+tbcususerbeanvo.getcustomerkey());

tbcususerdao.getcuskey(paramcuskey);

string out=paramcuskey.get("outpara").tostring().substring(paramcuskey.get("outpara").tostring().indexof("=")+1, paramcuskey.get("outpara").tostring().length());//獲取結果,注意只是當前呼叫儲存過程的dao層可以獲取,到了serveice不可--map沒傳遞出去

system.out.println(out);

system.out.println(paramcuskey.get("outpara").tostring());

***********************************

//mybatis呼叫儲存過程的另一xml寫法

recommendmap" statementtype="callable">

call pd_con_obj_recommend(?,?)    

@override

public string recommend(string conobjkey) {

stringbuffer inparasb = new stringbuffer("");

string inpara = inparasb.tostring();

mapmap = new hashmap();

map.put("inpara", inpara);

return map.get("outpara");

public string recommend(mapmap);

mybatis呼叫Oracle儲存過程返回結果集

在開發中,有時需要關聯幾張表來進行一些複雜的計算,此時可採用建立一張臨時表,將每次的資料計算後先存入臨時表,然後通過oracle的游標返回。在mybatis中的呼叫如下 呼叫語法格式,需要構造乙個resultmap,用來接收返回的結果集 在service層呼叫如下 在service層呼叫,out v...

mybatis 呼叫儲存過程

引數形式 create procedure sptest.adder in addend1 integer,in addend2 integer,out thesum integer begin atomic set thesum addend1 addend2 end go parameterma...

mybatis 呼叫儲存過程

至於為什麼用map作為引數,是因為別人寫的儲存過程 可能沒有返回出參,然後就會出現下面的問題。但是別人幾百行上千行的儲存過程,我是絕對不敢去動的。然後就只能用可以為null的物件去接收返回值了,所以就從實體變為了map。void callpwfsubmit mapmap 獲取儲存過程所需要的引數 p...