工作中实际遇到过,很低级的错误,本以为sql写的对就没有问题了,但是后台还是报异常,说是mybatis在set 参数的时候jdbcType不对,一头雾水,参数怎么还要jdbcType?翻来覆去检查了入参,都没有问题,最后才查到原来是#{入参}传入时没有检查是否为null,Mybatis傻了,对于null的参数不会设置jdbcType,所以才报错。
解决方式有2种:1.在sql中,写<if test=""></if>判断是否为null;2.在入参的花括号中标明jdbcType,如:#{入参,jdbcType=VARCHAR}。
到此问题解决。