MyBatis註解呼叫儲存過程獲取返回值
阿新 • • 發佈:2021-08-11
1.準備儲存過程
create or replace procedure P_Test(vc_num1 in varchar2, vc_num2 in varchar2, vc_sql out varchar2) is begin //具體操作 end P_Test;View Code
2.在dao檔案配置
@Select("{call P_Test(#{map.num1,jdbcType=VARCHAR,mode=IN}," + "#{map.num2,jdbcType=VARCHAR,mode=IN}," + "#{map.sql,jdbcType=VARCHAR,mode=OUT})}") @Result(columnView Code= "sql", property = "sql", jdbcType = JdbcType.VARCHAR) @Options(statementType = StatementType.CALLABLE) void getSqlBycondition(@Param("map") Map<String, Object> map);
statementType = StatementType.CALLABLE 表示儲存過程
3.在service中呼叫
String sql = ""; Map<String, Object> mapSql = newView CodeHashMap<>(); mapSql.put("num1", "1"); mapSql.put("num2", "2"); mapSql.put("sql", sql); middleService.getSqlBycondition(mapSql);
在通過map.get("sql")獲取返回值