1、mybatis支持sql语句动态拼接。如:
where+if
set + if
choose+when
foreach
等。
2、原理
mapper本质上是一个接口 ,采用JDK动态代理机制执行。
在代理的InvocationHandle中可解析动态sql 封装为最终的BoundSql执行
参考:
https://www.cnblogs.com/ysocean/p/7289529.html