mybatis調取oracle execute immediate動態拼接儲存過程返回結果
阿新 • • 發佈:2019-02-13
create or replace procedure test_len (filed varchar2,res out varchar2) is
/**
**描述
**/
begin
if(length(filed)>10) then
res:='error';
dbms_output.put_line('error');
else
res:='success';
dbms_output.put_line('success');
end if;
end test_len;
2:mybatis xml3:dao<resultMap type="java.util.HashMap" id="resultMap"> <result column="pro" property="pro" javaType="java.lang.String" jdbcType="VARCHAR"/> <result column="res" property="res" javaType="java.lang.String" jdbcType="VARCHAR"/> </resultMap> <select id="ardoData" statementType="CALLABLE" parameterType="java.util.HashMap" resultMap="resultMap"> {call dynamic_pro(#{pro,mode=IN,jdbcType=VARCHAR},#{res,mode=OUT,jdbcType=VARCHAR})} </select>
public String ardoData(Map<String, String> paramMap);
4:service實現類5:調取過程public String ardoData(String pro) { Map<String, String> paramMap = new HashMap<String, String>(); paramMap.put("pro", pro); dao.ardoData(paramMap); System.out.println(paramMap.get("res")); return paramMap.get("res"); }
String pro = " test_len (‘銅雀深宮鎖二喬’,:res)";
System.out.println("呼叫的儲存過程:"+pro);
String result = service.ardoData(pro);
System.out.println("結果:"+ result);