7.动态SQL

动态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>
posted @ 2023-11-24 17:52  回家太晚太悲催  阅读(26)  评论(0)    收藏  举报