<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>
本文介绍了一个在使用MyBatis结合MySQL时出现的查询空值异常问题及两种解决方案:一是通过SQL语句设置默认值;二是更改返回值类型并配合业务代码处理。
618





