2022-2-14-Java-传递多参数错误

spring文件报错:nested exception is org.apache.ibatis.binding.BindingException: Parameter 'XXX' not found. Available parameters are [XXXXX, validTime, time, param3, param4, param1, shipId, param2]
报错原因:Mapper文件进行多参数传递时,同时传递了对象参数和基础数据参数
解决方法:将基础数据参数放入对象参数中,可进行适当隐藏处理(最简单解决方法)
例子:mapper文件中原源代码:
List<ResponseEmpList> getOnShipList(@Param("shipId")Integer shipId, @Param("time")String time, @Param("validTime")Integer validTime,
@Param("c3OnShipList")QueryC3OnShipList c3OnShipList);
后修改为:
List<ResponseEmpList> getOnShipList(QueryC3OnShipList c3OnShipList);
同时,通过查阅网友处理方法,得到相似问题解决方法:
1.Mapper文件加@Param注释,比如:
@Param("time")String time
2.sql语句加jdbcType=INTEGER,如:
WHERE
card_time BETWEEN dateadd(hour ,-(#{validTime},jdbcType=INTEGER) ,#{time})AND #{time}

浙公网安备 33010602011771号