kwenpp 2016-02-03 03:20 采纳率: 0%
浏览 5202

Mybatis调用存储过程返回多个结果集

存储过程返回两个结果集(游标)。

 CREATE OR REPLACE FUNCTION t_user_func(id varchar(20))
  RETURNS SETOF refcursor AS
$BODY$
Declare
code refcursor;
result refcursor;
BEGIN     
  --返回错误码
  OPEN code FOR select 1010 as code;
  RETURN NEXT code;
  --返回查询结果集
  OPEN result FOR EXECUTE 'select * from t_user where user_id =''' ||id||'''' ;
  RETURN NEXT result;
  RETURN;
End;
$BODY$
  LANGUAGE plpgsql VOLATILE;

Mybatis映射文件是这样写的:

<select id="getUserByID" parameterType="map" statementType="CALLABLE">
    {call t_user_func(
    #{id,jdbcType=INTEGER,mode=IN},
    #{refcursor, mode=OUT,
    jdbcType=OTHER, javaType=ResultSet, resultMap=userResultMap}
    )
    }
</select>

<resultMap id="userResultMap" type="com.cet.ngp.model.UserStruct">
    <collection property="codes" ofType="com.cet.ngp.model.ResultCode">
        <id column="code" property="code" jdbcType="INTEGER" />
    </collection>
    <collection property="users" ofType="com.cet.ngp.model.User">
        <id column="user_id" property="userId" jdbcType="VARCHAR" />
        <result column="user_name" property="userName" jdbcType="VARCHAR" />
        <result column="user_birthday" property="userBirthday"
            jdbcType="DATE" />
        <result column="user_salary" property="userSalary" jdbcType="INTEGER" />
    </collection>
</resultMap>

只能获取到,code结果集,无法获取user结果集。
要怎么改,才能获取到user结果集。

  • 写回答

2条回答 默认 最新

  • RS_zhengjie 2017-07-25 03:32
    关注

    <?php
    $a = 89;
    ?>

    
    
    评论

报告相同问题?

悬赏问题

  • ¥15 微带串馈天线阵列每个阵元宽度计算
  • ¥15 keil的map文件中Image component sizes各项意思
  • ¥30 BC260Y用MQTT向阿里云发布主题消息一直错误
  • ¥20 求个正点原子stm32f407开发版的贪吃蛇游戏
  • ¥15 划分vlan后,链路不通了?
  • ¥20 求各位懂行的人,注册表能不能看到usb使用得具体信息,干了什么,传输了什么数据
  • ¥15 Vue3 大型图片数据拖动排序
  • ¥15 Centos / PETGEM
  • ¥15 划分vlan后不通了
  • ¥20 用雷电模拟器安装百达屋apk一直闪退