Mybatis提取公共sql片段和动态sql

1、提取公共sql片段

1、概念:将一些动态sql语句提取出来,封装,实现代码复用。

2、使用sql标签抽取公共部分。


<sql id="if-title-author">
        <if test="title != null">
            and title = #{title}
        </if>
        <if test="author != null">
            and author = #{author}
        </if>
    </sql>

3、在需要使用的地方使用include标签引入即可。

<select id="getBlog" resultType="blog" parameterType="map">
        select * from blog
        <where>
            <include refid="if-title-author"></include>
        </where>
    </select>

4、注意事项:最好基于单表来定义sql片段,不要存在where标签

2、动态sql

1、什么是动态sql:动态sql就是指根据不同的条件生成不同的sql语句。所谓的动态sql,本质还是sql语句,只是我们可以在sql层面,去执行一个逻辑代码动态sql就是在拼接sql语句,我们只要保证sql的正确性,按照sql的格式,去排列组合就可以。

2、建议:先在mysql中写出完整的sql,再对应的去修改成为我们的动态sql实现通用即可。

posted @   爱吃雪糕的小布丁  阅读(212)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示