There is no getter for property named 'deptIds' in 'class java.lang.String'

本文解决了一个关于MyBatis中使用动态SQL时参数传递的问题。通过调整Java代码中的参数传递方式,成功解决了XML配置文件无法正确识别参数的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

报这种错误头疼,什么传字符串参数默认用_parameter,

在参数前面加@Param(value="XXX")通通没有用。

Java:

        @Override
	public int getPersonCountByDeptIds(String deptIds) throws Exception {
		return this.selectOne("DepartmentExtXML.getPersonCountByDeptIds", deptIds);
	}

 XML:

        <!--根据部门子ids字符串获取下属人数 Y -->
	<select id="getPersonCountByDeptIds" resultType="java.lang.Integer" >
		SELECT count(*)
		FROM tbl_personnel_emp_details
		WHERE del_flag = 1
		AND department_id IN (${deptIds})
	</select>

我认为xml没有问题,觉得是传参让Mybatis的xml不识别的问题。Java代码改成如下就好了

        @Override
	public int getPersonCountByDeptIds(String deptIds) throws Exception {
		HashMap<String, Object> values = new HashMap<String,Object>();
		values.put("deptIds", deptIds);
		return this.selectOne("DepartmentExtXML.getPersonCountByDeptIds", values);
	}

希望对你有帮助!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值