java -mybatis plus - 写法 <if test="param.isOverdue =='N'"> 报错 NumberFormatException: For input string: "N"
1.背景
需要判断一个参数是单一字母时,报错无法转数字?奇怪的很,一脸懵,查了资料才知道,当只有一个字母时,会任务是 ascll码 数字比较,因此会将 param.isOverdue 的值 转数字
2.解决
转字符串就好了
<if test="param.isOverdue !=null and param.isOverdue !=''"> and <if test="param.isOverdue =='Y'.toString()"> <if test="_databaseId =='sqlserver'"> GETDATE() </if> <if test="_databaseId =='mysql'"> NOW() </if> <if test="_databaseId =='oracle'"> SYSDATE </if> > ta.CRT_TIME </if> <if test="param.isOverdue =='N'.toString()"> ta.CRT_TIME >= <if test="_databaseId =='sqlserver'"> GETDATE() </if> <if test="_databaseId =='mysql'"> NOW() </if> <if test="_databaseId =='oracle'"> SYSDATE </if> </if> </if>
还有个写法
<if test='param.isOverdue == "N" '> </if>
改为双引号效果等同字符串
本文来自博客园,作者:岑惜,转载请注明原文链接:https://www.cnblogs.com/c2g5201314/p/18784584
响应开源精神相互学习,内容良币驱除劣币

浙公网安备 33010602011771号