动态SQL
简介:
-
随着用户的输入或外部条件的变化而变化的SQL语句,我们称为动态SQL;
-
写在XML映射文件中;
元素:
1.<if></if>:
作用
- 用于判断条件是否成立;
属性:
- text属性:用于条件判断,如果条件为true,则拼接SQL,判断条件为实体类属性名;
例子:
<if test="name != null">
AND author_name like #{name}
</if>
2.<where></where>:
作用
- where元素在子句存在才会在SQL中插入where;会自动去除子句的开头为 “AND” 或 “OR”;
3.<set></set>:
作用
- set元素会动态地在行首插入 SET 关键字,并会删掉额外的逗号。(用在update语句中);
4.<foreach></foreach>:
作用
- foreach可以对集合进行遍历;
属性:
- collection:遍历的集合
- item:遍历出来的元素
- separator:分隔符
- open:遍历开始前拼接的SQL片段
- close:遍历结束后拼接的SQL片段
例子:
<delete id="deleteByIds">
delete from emp where id in
<foreach collection="ids" item="id" separator="," open="(" close=")">
#{id}
</foreach>
</delete>
5.<sql></sql> 和 <include>
作用:
- <sql>:用于公共的sql片段的抽取;
- <include>:用于将sql片段的引用;
属性:
- id:<sql>元素中的属性,给这个sql片段命名,供<include>元素引用;
- refid:<include>元素中的属性,用于引用对应id的sql片段;
例子:
<sql id="commonSelect">
select id,username,password,name,gender,image,job,entrydate,dept_id,create_time,update_time from emp
</sql>
<select id="list" resultType="com.caihongjia.pojo.Emp">
<include refid="commonSelect" />
</select>
标签:片段,遍历,元素,SQL,动态,id,属性
From: https://www.cnblogs.com/chj020415/p/17854388.html