恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

MyBatis Parameter ‘list‘ not found. Available parameters are [cars, param1] 错误详解

  • 首页
  • 资讯中心
  • /
  • MyBatis Parameter ‘list‘ not found. Available parameters are [cars, param1] 错误详解

相关资讯

nRF54L15 I2C初始化实战:从Zephyr配置到波形调试全解析 2026/8/19 6:45:29
工业自动化仿真实践:基于Modbus协议虚拟胶印机开发指南 2026/8/19 6:45:29
基于低噪声MEMS与树莓派Pico的桌面级地震信号采集系统设计与实践 2026/8/19 6:45:29

最新资讯

GUI智能体感知融合:像素与结构信息的权衡与诊断
NVIDIA Profile Inspector 完整上手教程:免费解锁显卡驱动里上百个隐藏设置
ESP32-S3驱动WS2812B点阵屏:从硬件选型到瀑布光效算法实现
基于MAX32660与墨水屏的超低功耗温度监测系统设计
Windows系统文件修复指南:System32文件夹替换的灾难与安全恢复方案
NVIDIA Profile Inspector 完整上手教程:解锁驱动隐藏设置,游戏性能提升可达 30%

今日推荐

Windows 安卓应用安装终极方案:5分钟上手免费APK安装器,三步告别模拟器
WarcraftHelper 魔兽争霸3优化实战指南
抖音批量下载实战手册:用douyin-downloader把6小时手工劳动压缩到15分钟

本周热门

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码
【双层规划,节点出清价,绿证交易,CVaR方法】两级电力市场环境下计及风险的省间交易商最优购电模型附Matlab代码
隐式mpc+自适应mpc+时变mpc,线性时变模型预测控制附Simulink仿真

本月精选

如何用DamaiHelper实现演唱会门票的智能自动化抢购:完整技术解决方案指南
第4篇:59 倍性能差距的索引瓶颈定位——一次教科书级的全表扫描调优
终极歌词批量下载神器:5分钟解决离线音乐库歌词同步难题

MyBatis Parameter ‘list‘ not found. Available parameters are [cars, param1] 错误详解

发布时间:2026/8/19 6:45:29
MyBatis Parameter ‘list‘ not found. Available parameters are [cars, param1] 错误详解 MyBatisParameter ‘list‘ not found. Available parameters are [cars, param1]错误详解一、错误现象运行测试时抛出异常org.apache.ibatis.binding.BindingException: Parameter list not found. Available parameters are [cars, param1]错误位置在com.xie.mapper.CarMapper.insertMore方法。二、错误含义这个错误表明MyBatis 在解析 XML 中的foreach标签时试图从参数中获取名为list的值但实际传入的参数中只有cars和param1两个可用参数不存在list这个名称。错误信息中的Available parameters are [cars, param1]明确告诉你当前方法可用的参数名是cars和param1但你用了list。三、根本原因分析3.1 代码示例错误情况你的 Mapper 接口中可能定义了这样的方法publicinterfaceCarMapper{// ❌ 错误使用了 Param(cars)但 XML 中用了 collectionlistintinsertMore(Param(cars)ListCarcarList);}对应的 XML 映射中使用了foreach标签insertidinsertMoreINSERT INTO t_car (car_num, brand, guide_price, produce_time, car_type) VALUESforeachcollectionlistitemcarseparator,(#{car.carNum}, #{car.brand}, #{car.guidePrice}, #{car.produceTime}, #{car.carType})/foreach/insert测试代码Testpublicvoidtest6(){ListCarcarListArrays.asList(newCar(京A11111,宝马,30.0,2024-01-01,燃油车),newCar(京A22222,奔驰,45.0,2024-01-02,燃油车));// ❌ 调用时传入的是 carListcarMapper.insertMore(carList);}3.2 执行流程方法参数上有Param(cars)MyBatis 将参数放入 Map 时Key 为cars同时也会用param1作为备用 Key。XML 中collectionlistMyBatis 去 Map 中查找 Key 为list的值找不到。抛出Parameter list not found异常并提示可用参数为[cars, param1]。四、解决方案方案一修改 XML 中的collection属性推荐将collection改为Param注解的值insertidinsertMoreINSERT INTO t_car (car_num, brand, guide_price, produce_time, car_type) VALUES!-- ✅ 将 list 改为 cars与 Param(cars) 一致 --foreachcollectioncarsitemcarseparator,(#{car.carNum}, #{car.brand}, #{car.guidePrice}, #{car.produceTime}, #{car.carType})/foreach/insert方案二去掉Param注解使用默认名称// 去掉 Param 注解intinsertMore(ListCarcarList);此时 MyBatis 会使用list作为默认 KeyXML 中可以继续使用collectionlist。foreachcollectionlistitemcarseparator,方案三使用param1作为 collection!-- 不推荐可读性差 --foreachcollectionparam1itemcarseparator,五、参数命名规则速查表场景方法签名XML 中可用的collection值有Param(xxx)int insert(Param(cars) ListCar list);cars推荐无ParamListint insert(ListCar list);list无ParamArrayint insert(Long[] ids);array无ParamSetint insert(SetLong ids);collection使用Param 默认int insert(Param(cars) ListCar list);param1不推荐六、常见易错点总结1. ❌Param注解名与collection不一致Param(cars)ListCarcarListforeachcollectionlist!-- 错误应该用 cars --2. ❌ 误用默认名称Param(cars)ListCarcarListforeachcollectioncars!-- 正确 --3. ❌ 无Param时用了自定义名称ListCarinsertBatch(ListCarcarList);// 无 ParamforeachcollectioncarList!-- 错误应该用 list --4. ✅ 推荐做法intinsertMore(Param(cars)ListCarcarList);foreachcollectioncarsitemcarseparator,七、修正后的完整代码7.1 Mapper 接口publicinterfaceCarMapper{/** * 批量插入车辆 * param carList 车辆列表 * return 插入条数 */intinsertMore(Param(cars)ListCarcarList);}7.2 XML 映射insertidinsertMoreINSERT INTO t_car (car_num, brand, guide_price, produce_time, car_type) VALUESforeachcollectioncarsitemcarseparator,(#{car.carNum}, #{car.brand}, #{car.guidePrice}, #{car.produceTime}, #{car.carType})/foreach/insert7.3 测试代码Testpublicvoidtest6(){ListCarcarListArrays.asList(newCar(京A11111,宝马,30.0,2024-01-01,燃油车),newCar(京A22222,奔驰,45.0,2024-01-02,燃油车),newCar(京A33333,奥迪,35.0,2024-01-03,燃油车));introwscarMapper.insertMore(carList);System.out.println(插入条数rows);sqlSession.commit();}八、错误排查流程图┌─────────────────────────────────────────────────────────────────┐ │ BindingException: Parameter xxx not found │ │ Available parameters are [a, b, param1, ...] │ └─────────────────────────────────────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────────────┐ │ Step 1: 查看 XML 中 foreach 的 collection 属性值 │ │ 当前值list │ └─────────────────────────────────────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────────────┐ │ Step 2: 查看 Mapper 接口方法的 Param 注解 │ │ 当前Param(cars) │ └─────────────────────────────────────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────────────┐ │ Step 3: 对比 collection 值与 Param 值 │ │ list ≠ cars → 不一致 │ └─────────────────────────────────────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────────────┐ │ 解决方案统一 collection 与 Param 名称 │ │ 方案Acollectioncars推荐 │ │ 方案B去掉 Param使用 list │ └─────────────────────────────────────────────────────────────────┘九、总结速查表错误信息根本原因解决方案Parameter list not found. Available parameters are [cars, param1]XML 中collectionlist但方法参数使用了Param(cars)将collection改为carsParameter xxx not found. Available parameters are [list, param1]使用了自定义名称但方法无Param用list或加ParamReturn value (3) was not iterable传入单个值但 XML 用了foreach改用或传入集合结语Parameter xxx not found错误是 MyBatis 中参数绑定最常见的问题之一。核心原则是XML 中collection属性的值必须与方法参数或Param注解的名称保持一致。记住两条黄金法则如果方法参数有Param(xxx)XML 中用collectionxxx。如果方法参数没有Param对于List使用list对于Array使用array。养成使用Param注解并保持命名一致的习惯可以避免 90% 以上的参数绑定问题。

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号