Mybatis呼叫儲存過程返回查詢語句

2021-12-29 16:22:31 字數 1110 閱讀 8179

mybatis呼叫儲存過程返回查詢語句

1.首先要在mybatis的配置檔案中配置好引數,eg:

call budget_deal.ap_ex_getyearly(

#(這個返回型別,已經規定的返回值的各個屬性)

)]]>

2.其中parametertype的引數型別是:

map params = new hashmap();

yearbudgetrptmapper.getyearly(params);(這個是我掉用的乙個儲存過程所使用的方法)

return getjson(params.get("result"));這個是返回的值(json的返回型別是string)

3.void getyearly(map params);這個是方法的介面

4.下面是我定義的乙個儲存過程

create procedure mypro(v_cursor out sys_refcursor)

isbegin

open v_cursor for select empno, ename, job from emp;

end mypro;

如果:查詢的內容過多可以使用下面的例子來呼叫儲存過程,eg:

create procedure mypro(

v_cursor   out sys_refcursor)is

v_sql varchar2(2048);--定義乙個字串來把要查詢的語句變為字串型別複製給游標

begin

v_sql := '';

v_sql := v_sql || 'select    empno,';

v_sql := v_sql || '              ename,';

v_sql := v_sql || '              job';

v_sql := v_sql || '  from     emp';

dbms_output.put_line(v_sql);

open v_cursor for v_sql;

end mypro;

(這裡通過v_sql,可以進行多個表的關聯查詢)

通過這個簡單的例子就可以直接的呼叫儲存過程,返回的游標裡面的內容了

mybatis呼叫儲存過程,獲取返回的游標

將呼叫儲存過程引數放入map中,由於返回的游標中包含很多引數,所以再寫乙個resultmap與之對應,型別為hashmap。設定返回的jdbctype cursor,resultmap設定為id對應的值。最後游標中的值就輸出到list中了。如下 service層 public hashmap tes...

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...