mybatisPlus 使用@Select @Update等注解配置SQL时参数传递

时间:2025-04-27 15:21:18

首先,我个人还是推崇将所有的sql都写到xml里面去,比较直观易读,以便于维护。
当然,不排除维护一些老项目,或者其它神仙队友喜欢这么写。

今天在一个项目上增加接口,发现先驱们都是把sql写到注解里面的,我也就这么写了。sql里面需要传参,参数判断空时,需要用到<if>表达式,测试时发现怎么都有问题,命名是空,但if居然还进了我的sql。

最后,通过将所有的sql包裹在<script></script>内解决了问题

例如

@Update("update xxx set ... where 1=1 <if test=\" != null\">and id = #{}</if>")
void updateByParam(@Param("req")A req);

改成

@Update("<script>update xxx set ... where 1=1 <if test=\" != null\">and id = #{}</if></script>")
void updateByParam(@Param("req")A req);