`

mapper标签if字符串NumberFormatException

 
阅读更多

错误背景

在mapper中对请求的参数进行判断 

 

		<if test="cateId == 'A'">
		and a.cateId like 'E%' and a.cateId not like 'E50%'
		</if>
		<if test="cateId == 'B'">
		and a.cateId like 'S%' 
		</if>
		<if test="cateId == 'C'">
		and a.cateId like 'G%'
		</if>
		<if test="cateId == 'D'">
		and a.cateId like 'E50%'
		</if>

 

 

 

报错信息

 

org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException: 
### Error querying database.  Cause: java.lang.reflect.UndeclaredThrowableException
### Cause: java.lang.reflect.UndeclaredThrowableException
	at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:73)
	at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:364)
	at com.sun.proxy.$Proxy4.selectList(Unknown Source)

.....

Caused by: java.lang.NumberFormatException: For input string: "C"
	at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1241)
	at java.lang.Double.parseDouble(Double.java:540)
	at org.apache.ibatis.ognl.OgnlOps.doubleValue(OgnlOps.java:259)

 

 

解决方案

来源:if判断字符串

 

判断应该写成 test='cateId == "A"' 或者test="cateId  == 'A'.toString()"

 

 

 

	<if test="cateId != null and cateId != ''">
		<if test='cateId == "A"'>
			and a.cateId like 'E%' and a.cateId not like 'E50%'
		</if>
		<if test='cateId == "B"'>
			and a.cateId like 'S%'
		</if>
		<if test='cateId == "C"'>
			and a.cateId like 'G%'
		</if>
		<if test='cateId == "D"'>
			and a.cateId like 'E50%'
		</if> 
	</if>

 

 

分享到:
评论

相关推荐

    mybatis Mapper.xml中传参多选 字符串形式逗号分隔 AND中拼接OR.rar

    标题和描述所提及的问题是关于如何在Mapper.xml文件中处理字符串形式的参数,这些参数由逗号分隔,并在`AND`语句中拼接`OR`子句来实现动态查询。这种场景在处理用户多选过滤条件时非常常见,比如在一个搜索框中,...

    java解析Json字符串

    Java解析Json字符串是Java开发中常见的一项任务,特别是在与Web服务交互、数据交换或存储时。Json(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。在Java...

    json转化字符串案例

    这个“json转化字符串案例”应该是提供了一些示例,演示如何将Java对象转化为JSON字符串,以及如何将JSON字符串反序列化为Java对象。这对于理解和学习JSON在Java环境中的应用至关重要,特别是对于初学者来说。 首先...

    java中解析json字符串

    本文将深入探讨如何在Java中解析JSON字符串,以满足后端处理前端传递的数据需求。 首先,理解JSON的基本结构至关重要。JSON格式通常包含键值对,可以是对象(用花括号 `{}` 包裹)或数组(用方括号 `[]` 包裹)。...

    regexp-string-mapper:将字符串中的标记映射到值。 支持自定义令牌类型

    正则表达式字符串匹配器将字符串中的标记映射到值。 支持自定义令牌类型用法 var RegExpStringMapper = require ( 'regexp-string-mapper' ) ;var moment = require ( 'moment' ) ;var Serializer = require ( '...

    解析Json字符串直接转换为对象(包括多层List集合 嵌套)所用jar包

    标题和描述提及的是将JSON字符串转换为Java对象,特别是涉及多层嵌套和List集合的情况。这在处理复杂数据结构时非常常见,比如服务器返回的响应可能包含嵌套的对象和数组。下面我们将详细介绍如何使用Jackson库来...

    Mybatis在Mapper.xml文件中的转义字符处理方式.pdf

    为了解决这个问题,Mybatis提供了一些处理转义字符的方式,以确保SQL语句能够正确地写入Mapper.xml文件中并被解析。 在Mapper.xml文件中处理转义字符的常见方法主要有以下几种: 1. 常用的XML转义字符写法 在XML中...

    Mybatis中Mapper标签总结大全

    Mybatis中Mapper标签总结大全 Mybatis是当前Java开发中最流行的持久层框架之一,Mapper标签是Mybatis中最重要的标签之一,用于定义数据访问对象(DAO)中的数据库操作。下面是对Mybatis中Mapper标签的总结。 ...

    json字符串转成 Map/List

    在Java中,将JSON字符串转换为Map或List是常见的操作,这在处理服务器返回的数据或者进行数据序列化时非常有用。 JSON字符串的结构主要包括对象(键值对的集合,用花括号{}包围)和数组(有序元素的集合,用方括号...

    JSON字符串和java对象的相互转换

    在Java开发中,JSON字符串与Java对象之间的相互转换是常见的操作,特别是在网络通信、数据存储以及API接口设计等领域。 JSON字符串转Java对象: 在Java中,我们通常使用第三方库如Jackson、Gson、Fastjson等来实现...

    在文件中查询特定字符串

    例如,使用Hadoop的MapReduce,我们可以编写自定义的Mapper和Reducer来查找特定字符串。Spark则提供了DataFrame和SQL查询接口,可以方便地对文本数据进行复杂查询。 此外,正则表达式是查询特定字符串时的强大工具...

    数据库链接字符串大全.pdf

    数据库链接字符串是编程中连接数据库的关键元素,它们用于在应用程序与数据库之间建立通信桥梁。本文将深入探讨数据库链接字符串的概念,以及如何为不同的数据库环境配置这些字符串,特别聚焦于SQL Server的不同连接...

    对字典表的数值转换为字符串

    在IT行业中,尤其是在Java编程领域,我们经常遇到需要将字典表(Dictionary Table)的数值转换为对应的字符串表示。字典表是一种存储枚举类型数据的数据库表,它通常包含两个字段:一个用于存储数值ID,另一个用于...

    Json字符串和对象的转换.txt

    //用ObjectMapper工具类把对象转换为JSON字符串 public static String toJson(Object obj) { String result=""; try { result = MAPPER.writeValueAsString(obj); } catch (JsonProcessingException...

    字符串或链表转json

    在Java编程中,处理JSON数据时,Jackson是一个非常流行的开源工具包,它提供了将Java对象转换为JSON字符串以及从JSON字符串反序列化回Java对象的功能。 Jackson库由FasterXML公司开发,其主要组件包括`Jackson-...

    IT专家在Java中,JSON解析器自动将字符串转换为数字-整数 .docx

    这个过程可能导致字符串类型的值在某些情况下被自动转换为数字类型,特别是当字符串包含纯数字内容时。 例如,你有一个名为`User`的类,其中包含两个字段:`userid`和`password`。如果`userid`是字符串"tom",而`...

    java 对象与json字符串互相转换工具类

    在Java开发中,数据交换和存储经常涉及到对象与JSON字符串之间的转换。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。Java提供了多种库来实现对象与...

    GlobalMapper17补丁

    对于Excel文件中的汉化资源,通常会列出原始英文字符串和对应的中文翻译,译者需要逐个核对并完善未完成的部分。 汉化GlobalMapper需要具备一定的编程基础,尤其是对软件界面文件(如资源文件或XML文件)的操作。...

    json字符串和java对象间的转换

    在Java中,我们经常需要将JSON字符串与Java对象进行互相转换,以便处理和存储数据。这篇博客将探讨如何在Java中实现这一过程。 一、JSON简介 JSON是一种基于文本的格式,它使用键值对来表示数据,结构清晰,易于...

    springboot工程中使用ObjectMapper解析JSON字符串

    在Spring Boot应用中,ObjectMapper是Jackson库的核心组件,它被广泛用于处理JSON数据,包括序列化(将Java对象转换为JSON字符串)和反序列化(将JSON字符串转换回Java对象)。这个强大的工具使得在Spring Boot工程...

Global site tag (gtag.js) - Google Analytics