异常信息:
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>
网友评论