[mybatis]............attempted to return null from a method with a primitive return type (int).

本文介绍了一个关于MyBatis框架中返回原始类型时出现的BindingException异常问题及其解决方案。通过修改SQL查询语句使用Oracle的nvl函数来避免返回null值,从而解决了异常。此外还介绍了nvl和nvl2函数的用法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

org.apache.ibatis.binding.BindingException: Mapper method 'com.insight.hr.Call.mapper.CallMapper.SelectCallNum attempted to return null from a method with a primitive return type (int).

sql:

<select id="SelectCallNum" resultType="int">
select callnum from call_table
       where callOfPassive =#{userid} order by callnum desc
</select>

执行结果 :(此记录的该字段未赋值)、(查询出的结果为空,无数据/空表)

解决办法:返回callnum时进行判断,使用nvl函数:

select  nvl(callnum,1) as callnum from call_table 
         where callOfPassive =#{userid} order by callnum desc

补充:nvl函数和nvl2函数

NVL(E1, E2)的功能为:如果E1为NULL,则函数返回E2,否则返回E1本身。

NVL2(E1, E2, E3)的功能为:如果E1为NULL,则函数返回E3,若E1不为null,则返回E2。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值