报错信息是Error setting null for parameter #1 with JdbcType OTHER

本文详细解析了在使用MyBatis框架时遇到的参数类型不匹配错误,具体表现为期望long型数据却接收到String类型,导致的TypeException异常。通过调整JDBC类型为NUMERIC尝试解决,但未完全解决问题。最终,建议检查前端数据传输确保类型正确。
摘要由CSDN通过智能技术生成

报错信息是:nested exception is org.apache.ibatis.type.TypeException: Could not set parameters for mapping: ParameterMapping{property='__frch_item_0.userId', mode=IN, javaType=class java.lang.Long, jdbcType=null, numericScale=null, resultMapId='null', jdbcTypeName='null', expression='null'}. Cause: org.apache.ibatis.type.TypeException: Error setting null for parameter #1 with JdbcType OTHER . Try setting a different JdbcType for this parameter or a different jdbcTypeForNull configuration property. Cause: java.sql.SQLException: 无效的列类型: 1111

报错原因是:传过来的参数类型不对,需要的是一个long型的数据,结果传过来是一个String类型的数据,导致接收不了,网上说在传过来的数据jdbcType=NUMERIC,如下,数据库里number类型的数据写成NUMERIC,发现换了一个错,但是仍然没有解决

<insert id="batchUserRole" useGeneratedKeys="false">
insert all
<foreach item="item" index="index" collection="list">
into sys_user_role(user_id, role_id) values (#{item.userId,jdbcType=NUMERIC},#{item.roleId,jdbcType=NUMERIC}
</foreach>
SELECT 1 FROM DUAL
</insert>

解决办法是:检查前端部分传过来的数据是否正确

 

转载于:https://www.cnblogs.com/zzxzxn/p/10761645.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值