1<if></if>的使用:
<select id="roleById" resultType="Role" parameterType="Integer">
SELECT * FROM role
where 1=1
<if test=" id != null">
and id = #{id}
</if>
</select>
2<where>的使用
<select id="roleAll" resultType="Role">
SELECT * FROM role
<where>
<if test=" id != null">
id = #{id}
</if>
<if test=" name != null">
and name = #{name}
</if>
<if test=" remark != null">
and remark = #{remark}
</if>
</where>
</select>
3、<trim>的使用
<insert id="roleAdd">
insert into role
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test=" id !=null">id,</if>
<if test=" name !=null">name,</if>
<if test=" remark !=null">remark,</if>
</trim>
-- suffixOverrides=","去掉最后一个逗号 suffix:后缀 prefix:前缀 prefixoverride:去掉第一个逗号
<trim prefix=" values(" suffix=")" suffixOverrides=",">
<if test=" id !=null">#{id},</if>
<if test=" name !=null">#{name},</if>
<if test=" remark !=null">#{remark},</if>
</trim>
</insert>
4、<set>的使用
<update id="roleUpdate">
update role
<set>
<if test=" name !=null">name=#{name},</if>
<if test=" remark !=null">remark=#{remark},</if>
</set>
where id=#{id}
</update>
5、<foreach>的使用
建立一个实体类,里面封装一个 List<Integer> ids 的属性
package com.zy.bean;
import lombok.Data;
import java.util.List;
@Data
public class Role {
private Integer id;
private String name;
private String remark;
private List<Integer> ids;
}
<!--
collection:指定输入对象中的集合属性
item:每次遍历生成的对象
open:开始遍历时的拼接字符串
close:结束时拼接的字符串
separator:遍历对象之间需要拼接的字符串
-->
<select id="roleByListId" resultType="Role" parameterType="Integer">
SELECT * FROM role where id in
<foreach collection="ids" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</select>
6.sql片段
有时候可能某个 sql 语句我们用的特别多,为了增加代码的重用性,简化代码,我们需要将这些代码抽取出来,然后使用时直接调用。
<!--定义sql语句-->
<sql id="selectRole">
<if test=" id != null">
id = #{id}
</if>
<if test=" name != null">
and name = #{name}
</if>
<if test=" remark != null">
and remark = #{remark}
</if>
</sql>
<!-- 调用sql语句-->
<select id="roleAll" resultType="Role">
SELECT * FROM role
<trim prefix="where" prefixOverrides="and | or">
<!-- 引用 sql 片段,如果refid 指定的不在本文件中,那么需要在前面加上 namespace -->
<include refid="selectRole"></include>
</trim>
</select>
|