org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.type.TypeException: Could not set parameters for mapping: ParameterMapping{property='strategyAuthor', mode=IN, javaType=int, jdbcType=null, numericScale=null, resultMapId='null', jdbcTypeName='null', expression='null'}. Cause: org.apache.ibatis.type.TypeException: Error setting non null for parameter #4 with JdbcType null . Try setting a different JdbcType for this parameter or a different configuration property. Cause: java.sql.SQLException: Parameter index out of range (4 > number of parameters, which is 3).
时间: 2023-12-06 07:40:48 浏览: 232
这个异常通常发生在 MyBatis 中进行数据库操作时,参数数量不匹配或类型不正确。具体来说,异常信息中提到了一个名为 strategyAuthor 的参数,它的类型是 int,但是在执行语句时,发现该参数的数量不正确,实际上只有 3 个参数,而该参数是第 4 个参数,因此抛出了 Parameter index out of range 的异常。
要解决这个异常,可以检查一下代码中传递给 MyBatis 的参数数量和类型是否正确。如果出现参数数量不匹配的情况,可以检查 SQL 语句中的占位符数量是否正确。另外,还可以检查一下参数的命名规范是否正确,例如是否大小写一致等。如果参数类型不正确,可以尝试将参数的类型转换为正确的类型。
相关问题
org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.type.TypeException: Could not set parameters for mapping:
org.mybatis.spring.MyBatisSystemException是MyBatis框架中的一个异常类,通常是由于MyBatis执行SQL语句时出现了异常导致的。在这个异常信息中,还包含了一个嵌套的异常org.apache.ibatis.type.TypeException,它是由于MyBatis在设置参数映射时出现了异常导致的。具体来说,这个异常信息中的错误提示是"Error setting non null for parameter #2 with JdbcType null",意思是在设置第二个参数时出现了错误,因为JdbcType为null。这个错误通常是由于MyBatis无法正确地将Java对象映射到数据库中的数据类型导致的。解决这个问题的方法是检查MyBatis语句中的参数映射是否正确,特别是检查JdbcType是否正确设置。此外,还可以尝试将MyBatis语句中的注释去掉,因为有时注释会影响参数映射的正确性。
"org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.type.TypeException: Could not set parameters for mapping: ParameterMapping{property='ew.paramNameValuePairs.MPGENVAL3', mode=IN, javaType=class java.lang.Object, jdbcType=null, numericScale=null, resultMapId='null', jdbcTypeName='null', expression='null'}. Cause: org.apache.ibatis.type.TypeException: Error setting null for parameter #3 with JdbcType OTHER . Try setting a different JdbcType for this parameter or a different jdbcTypeForNull configuration property. Cause: java.sql.SQLException: 无效的列类型: 1111"
这是一个MyBatis的异常,其中嵌套了一个TypeException异常。错误原因是在参数映射中设置参数时出现了问题,具体是在设置参数ew.paramNameValuePairs.MPGENVAL3时出现了错误。可能的原因是在设置参数时出现了空值(null)。
阅读全文