这个问题,其实我个人认为是Mybatis的一个bug,
在xml中,我们会通常注释一些,sql片段,但是要注意一点 ,#{}即使注释了也会被扫描到,也就是说,他会在这里预留一个占位符,然后你传参,明明只传递两个参数,结果sql需要三个参数?
那么解决方案就是,别注释,直接删除#{},当然${}就不会有问题,这个就是#和$的区别了。有兴趣自行百度。