在执行sql 的时候遇到了这个异常,service层代码如下:
if (dao.insertFaultResolve(faultResolve) > 0) {
........
}
mapper.xml文件中代码如下:
<insert id="方法名" useGeneratedKeys="true" keyProperty="主键"
parameterType="映射实体类">
INSERT INTO 表名(
列1,列2...
)
VALUES
(
值1,值2...
)
</insert>
当时以为是映射参数问题,所以将mapper接口改成了注解的方式来传递对象,但是发现不是。于是仔细查看exception内容,发现是空异常,于是想到是serviceImpl中if语句中执行sql后返回值为空,于是查看sql发现果然少了返回值的语句:
<selectKey keyProperty="主键" order="AFTER" resultType="返回值类型">
SELECT LAST_INSERT_ID()
</selectKey>
注意返回值类型,如果不对也会报异常。