错误
Caused by: org.apache.ibatis.builder.BuilderException: Parsing error was found in mapping #{blogId,
#{userId}. Check syntax #{property|(expression), var1=value1, var2=value2, ...}
at org.apache.ibatis.builder.SqlSourceBuilder$ParameterMappingTokenHandler.parseParameterMapping(SqlSourceBuilder.java:132)
at org.apache.ibatis.builder.SqlSourceBuilder$ParameterMappingTokenHandler.buildParameterMapping(SqlSourceBuilder.java:72)
at org.apache.ibatis.builder.SqlSourceBuilder$ParameterMappingTokenHandler.handleToken(SqlSourceBuilder.java:67)
at org.apache.ibatis.parsing.GenericTokenParser.parse(GenericTokenParser.java:78)
at org.apache.ibatis.builder.SqlSourceBuilder.parse(SqlSourceBuilder.java:45)
at org.apache.ibatis.scripting.defaults.RawSqlSource.<init>(RawSqlSource.java:46)
at org.apache.ibatis.scripting.defaults.RawSqlSource.<init>(RawSqlSource.java:40)
at org.apache.ibatis.scripting.xmltags.XMLScriptBuilder.parseScriptNode(XMLScriptBuilder.java:58)
at org.apache.ibatis.scripting.xmltags.XMLLanguageDriver.createSqlSource(XMLLanguageDriver.java:44)
at org.apache.ibatis.builder.xml.XMLStatementBuilder.parseStatementNode(XMLStatementBuilder.java:94)
at org.apache.ibatis.builder.xml.XMLMapperBuilder.buildStatementFromContext(XMLMapperBuilder.java:135)
at org.apache.ibatis.builder.xml.XMLMapperBuilder.buildStatementFromContext(XMLMapperBuilder.java:128)
at org.apache.ibatis.builder.xml.XMLMapperBuilder.configurationElement(XMLMapperBuilder.java:118)
... 81 more
Caused by: java.lang.StringIndexOutOfBoundsException: String index out of range: 33
at java.lang.String.charAt(String.java:658)
at org.apache.ibatis.builder.ParameterExpression.trimmedStr(ParameterExpression.java:131)
at org.apache.ibatis.builder.ParameterExpression.option(ParameterExpression.java:124)
at org.apache.ibatis.builder.ParameterExpression.jdbcTypeOpt(ParameterExpression.java:99)
at org.apache.ibatis.builder.ParameterExpression.property(ParameterExpression.java:70)
at org.apache.ibatis.builder.ParameterExpression.parse(ParameterExpression.java:47)
at org.apache.ibatis.builder.ParameterExpression.<init>(ParameterExpression.java:39)
at org.apache.ibatis.builder.SqlSourceBuilder$ParameterMappingTokenHandler.parseParameterMapping(SqlSourceBuilder.java:128)
... 93 more
原因
探究发现是Mapper.xml中的sql语句中的#{}表达式写的有问题:
解决
使用完整的#{}。