一开始我是这么写的
<select id="getWordsByStringFromNlp" resultType="java.lang.String">
select words
from stu
where tag = 1 and
<if test="w!=null and w!='' and w!=' '">
(words like concat('%、',#{w}) or words like concat(#{w},'、%') or words like concat('%、',#{w},'、%'))
</if>
</select>
报错
### Error querying database. Cause: java.lang.NumberFormatException: For input string: ","
### Cause: java.lang.NumberFormatException: For input string: ","
at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:30)
at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:149)
at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:140)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:426)
... 158 common frames omitted
Caused by: java.lang.NumberFormatException: For input string: ","
解决方法
<select id="getWordsByStringFromNlp" resultType="java.lang.String">
select words
from stu
where tag = 1
<if test='w!=null and w!="" and w!=" "'>
and(words like concat('%、',#{w}) or words like concat(#{w},'、%') or words like concat('%、',#{w},'、%'))
</if>
</select>