SSM---Mybatis配置DB2存储过程

【1】存储过程返回多个结果集,每个结果集多条数据的情况。resultMap="commonMap"。 这个和上面配置的<resultMap></resultMap>对应


<!-- 这个东西不知道有什么用,但是就是必须要,而且还不能和其它的xml里面的重复!!! -->
	<resultMap type="java.util.HashMap" id="commonMap">
		<result column="zhoulw" property="zhoulw" />
	</resultMap>
	
	<!-- 登陆测试入口 -->
	<select id="login_test" parameterType="java.util.Map" statementType="CALLABLE"  resultMap="commonMap,[有几个结果写几个commonMap]">
		{CALL PRC_MOBILE_LOGIN_TEST(
				#{personCode, 	mode=IN},
				#{password,		mode=IN}
		)}
	</select>

java:   List<List<?>> login_test(Map<String, Object> map);
    取第一个结果集:list.get(0)
    取第二个结果集:(List<Map<String, Object>>)list.get(1)

【2】返回结果集,结果只有一条数据的情况。resultType="java.util.Map" 当然你也可以用上面的方法配置一个返回结果集。用List<Map<String, Object> map>来接收返回结果。


<!-- 通过人员id或openId获取人员信息 -->
	<select id="queryPersonInfo" parameterType="java.util.Map" statementType="CALLABLE" resultType="java.util.Map">
		{CALL PRC_MOBILE_QUERYPERSONINFO(
				#{personId, 	mode=IN},
				#{openId,		mode=IN},
				#{type, 		mode=IN}
		)}
	</select>

java: Map<String, Object> queryPersonInfo(Map<String, Object> map);

【3】返回参数,由于我的入参是map的形式,所以配置了resultType="java.util.Map",这里需要注意的是。返回参数会自动放在入参的map里面。也就是说获取那两个输出参数时,用map.get("errCode")和map.get("errMsg")即可 。

<select id="opearteCollectInfo" parameterType="java.util.Map" statementType="CALLABLE" resultType="java.util.Map">
		{CALL PRC_MOBILE_OPERATECOLLECT(
				#{personId,			mode=IN},
				#{commodityId, 		mode=IN},
				#{operateType, 		mode=IN},
				#{errCode, 			mode=OUT, jdbcType=VARCHAR},
				#{errMsg,			mode=OUT, jdbcType=VARCHAR}
		)}
	</select>

java: Map<String, Object> opearteCollectInfo(Map<String, Object> map);

【4】返回有参数和有只有一条结果集的情况。分配配置resultType="java.util.Map"和resultMap="java.util.Map"。这样会报错的!

invalid bound statement

其他有输出和结果集的情况,组合一下就可以了。注意resultMap="commonMap"这个。在配置

<resultMap type="java.util.HashMap" id="commonMap">
        <result column="zhoulw" property="zhoulw" />
    </resultMap>

时, 里面的result最少要写一个。随便编一个都可以。不需要对应。

我最后实际是通过遍历结果集拿数据的。没有做对应关系。

parameterType="java.util.Map" :入参形式为map

resultType="java.util.Map" : 返回结果形式,用于输出参数。也可用与count()时的结果【resultType="java.lang.Integer"】,需要按需配置

resultMap="commonMap" :返回结果集。需要配置commonMap

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值