在通过myBatis执行sql时,报错: java.lang.NumberFormatException: For input string: "F"

xml中sql内容为:

                    <if test="myKey == 'P' ">
and `Field1` = #{fieldname}
</if>

其中 fieldname的值为 F, 没明白会报 NumberFormatException, 明明是字符型,后一步步调试代码到:

\.m2\repository\org\mybatis\mybatis\3.5.2\mybatis-3.5.2.jar!\org\apache\ibatis\ognl\ASTNotEq.class

报错的代码为(OgnlOps.equal):

    protected Object getValueBody(OgnlContext context, Object source) throws OgnlException {
Object v1 = this._children[0].getValue(context, source);
Object v2 = this._children[1].getValue(context, source);
return OgnlOps.equal(v1, v2) ? Boolean.FALSE : Boolean.TRUE;
}

v1,v2值分别为下图:

v2的值成了P,得到v2的类型为:

没明白,后边试着把 <if test="myKey == 'P' "> 调整为:  <if test="myKey == 'PP' "> 多加了一个P

这时v2的类型就为String了,估计MyBatis如果发现为单字符,都统一处理为了 Character, 试着调整为: <if test="myKey == "P" "> 单引号改为双引号(或加转义符),都不行

试着转换单双引号为(test里外包的将双引号改为单引号, P字符调整为双引号):

                    <if test='myKey == "P" '>
and `Field1` = #{fieldname}
</if>

再试,功能正常

最新文章

  1. redis参考文档
  2. Linux:-拷贝或传送文件的技巧
  3. dubbo工作原理
  4. Git——2
  5. php isset() empty() 区别, 判断 变量存在与否神器
  6. Solr与Mysql简单集成
  7. Linux下vsftp服务器—上传、下载
  8. msp430f149的低功耗模式
  9. oracle中 connect by prior 递归算法
  10. asp.net缓存(三)
  11. [Leetcode][Python]33: Search in Rotated Sorted Array
  12. 异常--java.text.ParseException: Unparseable date
  13. 通过GIT_COMMIT进行代码回滚
  14. centos6.8_manul_install_oracle112040&amp;manu_create_db
  15. sg函数小结
  16. Socket网络编程(三)
  17. vim设置Tab键和显示行号
  18. Java的运算符--与(&amp;)、非(~)、或(|)、异或(^)详解
  19. .net Forms身份验证不能用在应用的分布式部署中吗?
  20. Excel中用countif和countifs统计符合条件的个数 good

热门文章

  1. jvm学习:类的加载、连接、初始化、常量
  2. Win10子系统Ubuntu安装nginx (win10 安装 nginx)
  3. 8年经验面试官详解 Java 面试秘诀
  4. 解决请求中的post、get乱码问题以及响应的乱码问题
  5. 二 Mybatis架构&amp;MybatisDao的两种开发方式(原始Dao,接口动态代理)
  6. Javascript调用本地数据库
  7. JS 函数创建、封装、调用
  8. SSH、SSL与HTTPS的联系
  9. 刷题20. Valid Parentheses
  10. 安装oracle客户端后,怎样设置电脑的环境变量?