mybatis源碼深度解析
發布時間: 2024-10-21 21:19:01
『壹』 mybatis的include標簽中的refid怎麼傳參進去
在探索MyBatis源碼的旅程中,我嘗試解答「mybatis的include標簽中的refid如何傳參」這一問題。
我的解答是,refid如果使用形參形式,似乎不被支持。
sql語句解析發生在應用啟動時。在這個過程中,ref-id引用的SQL片段早已被查找。
源碼揭示,先解析/mapper/sql,即mapper中的SQL片段,然後深入解析具體SQL語句。
解析SQL語句是在方法`buildStatementFromContext`中完成的,代碼中涉及查找refid。
如嘗試使用形參,可能會引發異常。
解決方案是,通過MyBatis的動態SQL來實現。提前定義引用的SQL片段,利用``、``等標簽根據參數選擇不同語句。
熱點內容