昨天在寫一個接口 ,發現調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不分大小寫,就把所有內容都大寫了。。。