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 @ 2022-05-11 09:47  爱吃雪糕的小布丁  阅读(310)  评论(0)    收藏  举报  来源