原因就是在sql中使用了占位符,如:
#{param1}
然后给占位符传递了java的null值,mybatis就报错了,不允许传null,它不会帮你转换成数据库的NULL类型,因此需要手动处理,
方法一:指定占位符的数据库字段类型
#{param1,jdbcType=VARCHAR}
方法二:手动把Java的null替换成数据库的NULL
<if test="param1==null "> NULL </if> <if test="param1!=null"> #{param1} </if>