美文网首页
org.apache.ibatis.binding.Bindin

org.apache.ibatis.binding.Bindin

作者: mutang | 来源:发表于2020-08-23 14:56 被阅读0次

    异常信息:

    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>
    

    相关文章

      网友评论

          本文标题:org.apache.ibatis.binding.Bindin

          本文链接:https://www.haomeiwen.com/subject/sjnijktx.html