关于传递的值是1,2,3字符串如何使用foreach分割遍历的问题

在Mybatis中遇到字段值从'1,2'这样的字符串变为多值组合后,导致页面加载异常。报错源于将字符串转换为数值类型时抛出NumberFormatException。通过浏览器F12和debug调试发现,Mybatis接收到的是字符串型的'1,2',尝试split分割无效,因数据库字段为int类型。解决方案是在传递到Mapper前将字符串转换为int[]数组。" 137331031,1293748,Spring多线程事务一致性保证,"['Spring框架', 'Java并发', '数据库事务']
摘要由CSDN通过智能技术生成

问题描述:
在开发过程中由于对字段的进行了修改(由原来的只支持单个值输入,且是字符串型的;变成可支持字符串1,2或者1,3 2,3 等组合),导致页面无法正常加载。发现原因是下面这段Mybatis无法实现需要的功能。
部分代码如下:

	<!-- 使用字符串切割成字符串数组,但是报错-->
	<if test="type!= null">and o.type in
   		 <foreach item="item" index="index" collection="type.split(',')"  open="(" separator="," close=")" >
                    #{item}
          </foreach>
    </if>

报错日志如下

Caused by: org.apache.ibatis.exceptions.PersistenceException:
Error querying database. Cause: java.lang.NumberFormatException: For input string: “1,2”
Cause: java.lang.NumberFormatException: For input string: “1,2”
at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:30)
at org.apache.ibatis.session.defaults.DefaultSqlSession.selectL

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值