Mapper method 'com.mpn.dao.TWeatherMapper.avgWeatherTemperature attempted to return null from a method with a primitive return type (long).
<select id="avgWeatherTemperature" resultType="java.lang.Long" parameterType="java.lang.String" >
SELECT IFNULL(AVG(WeatherTemperature),0) AS OrderAverage FROM t_weather WHERE WeatherDate= #{date,jdbcType=VARCHAR};
</select>
<select id="sumWeatherRainfall" resultType="java.lang.Long" parameterType="java.lang.String" >
SELECT SUM(WeatherTemperature) AS OrderAverage FROM t_weather WHERE WeatherDate= #{date,jdbcType=VARCHAR};
</select>
<select id="avghumidity" resultType="java.lang.Long" parameterType="java.lang.String" >
SELECT IFNULL(AVG(WeatherHumidity),0) AS OrderAverage FROM t_weather WHERE WeatherDate= #{date,jdbcType=VARCHAR};
</select>
由于返回为空long中没有此类型所以抛异常,改为
<!-- 根据日期来进行计算平局值与 -->
<select id="avgWeatherTemperature" resultType="java.lang.Long" parameterType="java.lang.String" >
SELECT IFNULL(AVG(WeatherTemperature),0) AS OrderAverage FROM t_weather WHERE WeatherDate= #{date,jdbcType=VARCHAR};
</select>
<select id="sumWeatherRainfall" resultType="java.lang.Long" parameterType="java.lang.String" >
SELECT IFNULL(SUM(WeatherTemperature),0) AS OrderAverage FROM t_weather WHERE WeatherDate= #{date,jdbcType=VARCHAR};
</select>
<select id="avghumidity" resultType="java.lang.Long" parameterType="java.lang.String" >
SELECT IFNULL(AVG(WeatherHumidity),0) AS OrderAverage FROM t_weather WHERE WeatherDate= #{date,jdbcType=VARCHAR};
</select>
用IFNULL来进行判断
解决MyBatis Mapper返回空异常
本文详细解析了在使用MyBatis框架时,Mapper方法返回null导致的异常问题,尤其是在处理long型原始数据类型时。通过使用IFNULL函数,有效避免了因数据缺失而引发的运行时错误,确保了应用程序的稳定性和健壮性。
5929





