您的位置:首页 > 其它

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

2017-07-14 11:39 519 查看
我使用的是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));
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: