动态SQL
随用户的输入或者外部条件变化而变化的SQL语句
当遇到这种情况,比如条件筛选的时候,有时候你只需要部分条件筛选但是写入方法的却已经写死了,当你输入参数少的时候就找不到想要的数据了。
所以基于上面需求我们就要动态拼接自己需要的SQL语句
<if>
用于判断条件是否成立,使用test属性进行判断,为true就拼接
用where标签可以自动去除多余的and
<foreach>
用于批量操作
<!--
批量通过id删除
方法参数就可以是List的ids
collection 遍历的集合
item 遍历出来的元素
separator 分隔符
open 遍历开始前拼接的SQL片段
close 遍历结束后拼接的SQL片段
-->
<delete id="deleteByIds">
delete from tab1 where id in
<foreach collection="ids" item="id" separator="," open="(" close=")">
#{id}
<foreach>
<delete>
<sql>和<include>
用于很多重复使用的SQL语句,当其中部分要更改则全部地方都要更改时费时费力,所以用<sql>标签
//这个标签用来定义常用重复的sql片段
<sql id="conSelect">
select id,ss,ss,sss,sss,sss..............
</sql>
//具体运用 用<include> 标签引用
<select id="list">
<include refid="conSelect"/>
where.............
</select>