Request processing failed; nested exception is org.apache.ibatis.binding.BindingException: Mapper method 'com.icss.hospitalmanagessm.mapper.BookMapper.findNum attempted to return null from a method with a primitive return type (int).
时间: 2024-03-25 10:40:12 浏览: 116
apache启动报错:the requested operation has failed解决办法
5星 · 资源好评率100%
这个错误的原因是在你的 `BookMapper` 接口中的 `findNum` 方法返回类型为 `int`,但是在 SQL 语句执行时返回了 `null`,这违反了 Java 中的基本类型不能为 `null` 的规则,导致了 `BindingException` 异常。
需要将 `findNum` 方法的返回类型改为 `Integer`,并在 SQL 语句执行时,确保返回值不为 `null`,可以通过 `COALESCE` 函数来实现:
```
<select id="findNum" resultType="java.lang.Integer">
SELECT COALESCE(SUM(num), 0) FROM book WHERE book_id = #{bookId}
</select>
```
这样,即使 SQL 语句返回了 `null`,`COALESCE` 函数会将其转换为 0,避免了返回 `null` 导致的异常。同时,将返回类型改为 `Integer`,也允许返回 `null` 值,避免了异常的出现。
阅读全文