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();
    }
}

 

posted @ 2024-08-16 14:16  都是城市惹的祸  阅读(48)  评论(0)    收藏  举报