背景:
spring+mybatis-plus
错误:
org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.type.TypeException: Could not set parameters for mapping: ParameterMapping{property='mybatis_plus_first', mode=IN, javaType=long, 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).
原因:
mapper.xml注释不规范
1.注释中带有#{}占位符,但mybatis仍旧会把#{}算成一个带注入的参数;
2.在动态sql语句前后或中间使用了 -- 注释符号,导致mybatis认为参数缺失。
建议:
1.xml 的 sql 语句标签中,建议使用 ctrl+shift+/ 生成 /**/ 样式的注释;
2.xml 的文件内应使用 <!-- --> 样式的注释,不能使用 /**/ 样式的注释;
3.若想加中文注释应使用 <?xml version="1.0" encoding="UTF-8"?> 头。
ps:代码不规范,测试两行泪ヽ(ー_ー)ノ