報錯內容:java
java.sql.SQLException: Parameter index out of range (3 > number of parameters, which is 2)sql
調試半天,網上查了半天都是# 、$ 用法出錯,一次次的對比,一個個字找,發現,用法根本沒問題,忽然。。。看到了註釋中的mybatis
#{executorId},想一想,也許是這個的緣由呢?而後就給註釋刪了,結果發現就是註釋的鍋:spa
這樣,mybatis仍舊會把#{}算成一個帶注入的參數,二SQL認出了這個-- 的註釋.net
-- 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} ))blog
結論:在mybatis 的sql裏不是不能寫註釋,而是註釋不能有#{},mybatis仍舊會把#{}算成一個帶注入的參數io
參考:https://blog.csdn.net/peaceForEveryOne/article/details/82803357
im