mybatis的XML中注释需谨慎


报错内容:

java.sql.SQLException: Parameter index out of range (3 > number of parameters, which is 2)

调试半天,网上查了半天都是# 、$ 用法出错,一次次的对比,一个个字找,发现,用法根本没问题,突然。。。看到了注释中的

#{executorId},想想,也许是这个的原因呢?然后就给注释删了,结果发现就是注释的锅:

 

 

这样,mybatis仍旧会把#{}算成一个带注入的参数,二SQL认出了这个-- 的注释

-- AND (dept.id = #{executorId} OR dept.parentId = #{executorId} OR parentId in ( SELECT id from user_department

-- WHERE user_department.id = #{executorId} OR user_department.parentId = #{executorId} ))

 

 

 

 

结论:在mybatis 的sql里不是不能写注释,而是注释不能有#{},mybatis仍旧会把#{}算成一个带注入的参数

 


参考:https://blog.csdn.net/peaceForEveryOne/article/details/82803357


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM