org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException:
### Error querying database. Cause: java.lang.NumberFormatException: For input string: "a"
### Cause: java.lang.NumberFormatException: For input string: "a"
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:965)
org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:855)
javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:829)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
错误原因:文中写出是数字转换格式错误,但实际都是String类型,所以并没有格式问题.
实际原因是因为MyBatis中模糊查询,不支持login_name != ’ ‘,即:
<if test="login_name != null and login_name != ' '">
and login_name like '%'||#{login_name,jdbcType=VARCHAR}||'%'
</if>
所以应该进行更改
<if test="login_name != null && login_name.length()>0">
and login_name like '%'||#{login_name,jdbcType=VARCHAR}||'%'
</if>
可以正常运行: