Cause: java.lang.NumberFormatException: For input string: "a"

本文介绍了一个关于使用MyBatis进行模糊查询时遇到的问题及解决方案。问题表现为当使用不等于空字符串的条件时引发NumberFormatException异常。通过调整XML映射文件中的条件判断逻辑,成功解决了这一问题。
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 &amp;&amp; login_name.length()>0">
    and login_name like '%'||#{login_name,jdbcType=VARCHAR}||'%'
</if>

可以正常运行:

结果

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值