Mybatis-plus调用Oracle存储过程查询数据
简单举例如下:
<!-- out参数必须有一个resultMap参数接收 --> <resultMap id="yourResultMap" type="java.util.LinkedHashMap"></resultMap> <select id="callYourProcedure" statementType="CALLABLE" parameterType="java.util.Map" resultMap="yourResultMap"> {call your_procedure_name(#{param1, mode=IN, jdbcType=VARCHAR}, #{result, mode=OUT, jdbcType=CURSOR, javaType=java.util.List, resultMap=yourResultMap})} </select> <!-- mapper定义 --> public interface YourModelMapper extends BaseMapper<YourModelClass> { void callYourProcedure(@Param("pm") Object o); } <!-- 调用 --> Map<String, Object> map = new HashMap<>(); map.put("id", 1); map.put("name", "abc"); mapper.callYourProcedure(map); Object outs = map.get("out_records"); if (outs != null && outs.instanceof ArrayList) { ArrayList outList = (ArrayList)outs; for (Object out: outList) { LinkedHashMap linkedHashMap = (LinkedHashMap)out; String name = linkedHashMap.get("id").toString(); } }
有些事情,没经历过不知道原理,没失败过不明白奥妙,没痛苦过不了解真谛。临渊羡鱼,不如退而结网!

浙公网安备 33010602011771号