org.apache.ibatis.binding.Bindin

2020-08-23  本文已影响0人  mutang

异常信息:

org.apache.ibatis.binding.BindingException: 
Mapper method 'com.itheima.dao.IUserDao.saveUser attempted to return null from a method with a primitive return type (int).

可能发生情况,有两种,第一种常出现

第一种(是别人犯的错)

<select id="getMaxHitEventId" parameterType="string" resultType="int">
    select max(app_hitEventID) from hits_tab_app where app_hitV=#{app_hitV}
</select>

mybatis+mysql查询出来会报如下错误:
attempted to return null from a method with a primitive return type (int).
我的返回值类型为int,但是查询出来的结果有空值,所以会出现如上的异常

以下为解决办法:

1.当查询出来为空时,给赋值一个默认值:

select IFNULL(max(app_hitEventID),0) from hits_tab_app where app_hitV=#{app_hitV}

2.将返回值类型改为Integer,然后由业务代码去进行判断:

<select id="getMaxHitEventId" parameterType="string" resultType="Integer">
    select max(app_hitEventID) from hits_tab_app where app_hitV=#{app_hitV}
</select>

第二种 是我犯的错:

</select>
    <select id="saveUser" parameterType="com.itheima.domain.User">
        insert into user(username,birthday,sex,address) values(#{username},#{birthday},#{sex},#{address})
    </select>

解决:

粗心所致,此时的标签应该写insert

 <insert id="saveUser" parameterType="com.itheima.domain.User">
        insert into user(username,birthday,sex,address) values(#{username},#{birthday},#{sex},#{address})
    </insert>
上一篇 下一篇

猜你喜欢

热点阅读