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

我使用的是mysql数据库,映射2个实体对象:Account ,BankWater

mybaits调用的时候需要使用resultMap属性

由于mysql数据库支持存储过程使用select返回结果集,所以这里没有写out传入参数

<resultMap type="com.kay.entity.Account" id="account">
        <id column="account_id" property="accountId"/>
        <result column="account_name" property="accountName" javaType="java.lang.String" jdbcType="VARCHAR"/> 
        <result column="currency" property="currency" javaType="java.lang.String" jdbcType="VARCHAR"/> 
        <result column="balance" property="balance" javaType="java.math.BigDecimal" jdbcType="DECIMAL"/> 
        <result column="open_date" property="openTime" javaType="java.util.Date" jdbcType="DATE"/> 
        <result column="open_place" property="openPlace" javaType="java.lang.String" jdbcType="VARCHAR"/> 
        <result column="account_state" property="accountState" javaType="java.lang.String" jdbcType="VARCHAR"/> 
    </resultMap>

    <resultMap type="com.kay.entity.BankWater" id="bankwater">
        <id column="record_id"  property="recordId"/>
        <result column="in_account"  property="inAccount"  javaType="java.lang.String"  jdbcType="VARCHAR"/> 
        <result column="out_account" property="outAccount" javaType="java.lang.String" jdbcType="VARCHAR"/> 
        <result column="change_count" property="changeCount" javaType="java.math.BigDecimal" jdbcType="DECIMAL"/> 
        <result column="change_time"  property="changeTime"  javaType="java.util.Date"  jdbcType="DATE"/> 
        <result column="state" property="changeState" javaType="java.lang.String" jdbcType="VARCHAR"/> 
        <result column="detail" property="detail" javaType="java.lang.String" jdbcType="VARCHAR"/> 
    </resultMap>

    <select id="getAllInfo" statementType="CALLABLE" resultMap="account,bankwater" >
        {call pro_getinfo()
}

</select>

java调用时:

//查询所有记录的存储过程
        String s1="com.kay.dao.GetMapper.getAllInfo";
        List<List<?>> list1=session.selectList(s1);

        //对应第一个表
        System.out.println((List<Account>)list1.get(0));
        //对应第二个表
        System.out.println((List<Account>)list1.get(1));
已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页