【mysql】查询返回int数据为空时处理

    技术2022-07-14  84

    使用MyBatis查询,返回类型为int,但是当查询结果为空null,出现异常

    如代码中xml文件查询语句

    <select id="getGenerateStatus" resultType="java.lang.Integer"> select is_generating from report_info where task_id = #{taskId} </select>

    当未查询到任何数据返回null时,程序报错

    [2020-07-02 19:16:39.496][http-nio-3100-exec-2][ERROR] [com.xxx.exception.ExceptionHandlers:43] 发生空指针异常!原因是: java.lang.NullPointerException: null

    在mysql中可以使用IFNULL函数和MAX函数,将返回的NULL值转换为0 SQL语句可修改为:

    <select id="getGenerateStatus" resultType="java.lang.Integer"> select IFNULL(MAX(is_generating),0) as is_generating from report_info where task_id = #{taskId} </select>

    sum也可以使用max函数代替

    Processed: 0.010, SQL: 9