mybatis执行sql报错: Error setting non null for parameter #3 with JdbcType null .
作者:mmseoamin日期:2024-02-03

完整报错如下:

Caused by: org.apache.ibatis.type.TypeException: Error setting non null for parameter #3 with JdbcType null . Try setting a different JdbcType for this parameter or a different configuration property. Cause: java.sql.SQLException: Parameter index out of bounds. 4 is not between valid values of 1 and 2

解决方法:速速查看对应 mapper.xml 文件里面执行的 sql 语句,删掉使用 -- 注释掉的 sql 语句,如图:

mybatis执行sql报错: Error setting non null for parameter #3 with JdbcType null .,在这里插入图片描述,第1张

虽然使用 -- 也能注释掉 sql 语句,正常情况下也没什么问题,但是请注意,如果注释调的 sql 语句里面有 #{} 表达式的话,问题就来了,也就是上面的报错。xml 文件的注释还是采用 这种方式来注释比较规范。

最后提多一句,如果使用 -- 注释 sql 的话,假设里面没有 #{} 表达式,你可以使用 mybatis 的日志插件(我这里用的是 Mybatis Log Free)看一下实际执行的 sql 语句,sql 里面会包含你使用 -- 注释掉的 sql 语句,只不过确实不影响实际执行的效果,当然,前提是里面没有 #{} 表达式。如下图:

mybatis执行sql报错: Error setting non null for parameter #3 with JdbcType null .,在这里插入图片描述,第2张