关于mybatis参数大小写导致的传入参数为null的情况


昨天在写一个接口 ,发现调mapper的方法时,传入参数为空。

sql语句为: 

SELECT FORM_PAGE_URL
FROM WF_FLOW_NODE
WHERE NODE_NO = #{NODE_NO,jdbcType=INTEGER}
AND FLOW_ID = (SELECT ID FROM WF_FLOW_BASE WHERE FLOW_NO=#{FLOW_NO,jdbcType=VARCHAR})
AND FLOW_VERSION_ID = (SELECT ID FROM WF_FLOW_VERSION WHERE VERSION = #{FLOW_VERSION,jdbcType=VARCHAR} AND FLOW_ID = (SELECT ID FROM WF_FLOW_BASE WHERE FLOW_NO=#{FLOW_NO,jdbcType=VARCHAR}))

将sql打印出来:

 

 

 所有的参数都是空。

打断点,看传入的参数:

发现参数都是有的,后来问同事,看了一会,把sql语句中参数的大写全都改成小写,问题解决。。。。

 

sql语句大小写是都可以,但是在mybatis中通过#{}获取参数,{}中的名称应该与传入参数的变量名保持一致,以保证能获取到正确的值。一开始认为sql不分大小写,就把所有内容都大写了。。。

 


免责声明!

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



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