1. 程式人生 > 其它 >MyBatis註解呼叫儲存過程獲取返回值

MyBatis註解呼叫儲存過程獲取返回值

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(column 
= "sql", property = "sql", jdbcType = JdbcType.VARCHAR) @Options(statementType = StatementType.CALLABLE) void getSqlBycondition(@Param("map") Map<String, Object> map);
View Code

statementType = StatementType.CALLABLE 表示儲存過程

3.在service中呼叫

String sql = "";
        Map<String, Object> mapSql = new
HashMap<>(); mapSql.put("num1", "1"); mapSql.put("num2", "2"); mapSql.put("sql", sql); middleService.getSqlBycondition(mapSql);
View Code

在通過map.get("sql")獲取返回值