Mybatis小坑 Could not find result map

这里就牵扯到一个知识点, 就是resultMap 和 resultType的区别

我以前是很明确的知道这两个分别的,但是当我用起来的的时候,就忘记了。。没有特别注意打的是map还是type
Dao:

 Integer queryBookQuantity(RentalBook rBooks);

XML:

 <select id="queryBookQuantity" parameterType="com.neusoft.demo.entity.RentalBook" resultMap="Integer">
        select quantity from t_book where book_id = #{bookId}
    </select>

应该修改成

 <select id="queryBookQuantity" parameterType="com.neusoft.demo.entity.RentalBook" resultType="Integer">
        select quantity from t_book where book_id = #{bookId}
    </select>

我第一次就是像上面这么写的,报了标题的那个错误。

对了 这里Integer 是为了没有数据的时候 报错是没有可用的数据

然后 就这个 resultMap 找了快十分钟 愣是没看见这个错误, 后来 我才想起来 返回值 是要用type 为什么要用map 我真的傻了

这样我给大家一个用resultMap的例子

 <resultMap id="ReaderResultMap"
               type="com.neusoft.demo.entity.User">
        <result column="user_name" property="userName"/>
        <result column="sex" property="sex"/>
        <result column="email" property="email"/>
        <result column="count" property="readerCount"/>
    </resultMap>
     <select id="getRankListReader" resultMap="ReaderResultMap"
            parameterType="java.lang.String">
		SELECT
		u.user_name,
	    sex,
	    email,
		COUNT( u.user_id ) AS count
		FROM
		t_rental r
		JOIN t_user u ON u.user_id <![CDATA[ = ]]>
		r.user_id
		AND DATE_SUB(
		CURDATE( ), INTERVAL 30 DAY ) <![CDATA[ <= ]]>
		rental_datetime
		GROUP BY
		u.user_id
		ORDER BY
		count DESC
		</select>

就是类似上面这种

如果有parameterType和resultType分不清的小伙伴,可以把这两个理解为 parameterType是传入的值类型; resultType 是 传出的值类型,这个类型要与Dao层的方法返回值一致才可以。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值