trim标记是一个格式化的标记,可以完成set或者是where标记在xml文件当中的功能
总结:
- trim标签 拼接字符串
- prefix:给拼串后的字符串加上一个前缀 使用最多的是 where 或 set
- prefixOverrides:去掉拼串后的字符串的第一个前缀 一般是 and 或 or
- suffix:给拼串后的字符串加上一个后缀
- suffixOverrides:去掉拼串后字符串的最后一个后缀 一般是 and 或 or
- set标签:在更新中使用,可以去除多余的逗号
-
具体看代码解释:
查询的情况:
- <select id="findByEmpTrim" parameterType="employee" resultType="employee">
- select * from tbl_employee
-
- <trim prefix="where" prefixOverrides="and | or" suffixOverrides="and | or">
- <if test="id!=null and id!=''">
- and id=#{id}
- </if>
- <if test="lastName!=null and lastName!=''">
- and last_name like #{lastName}
- </if>
- <if test="email!=null and email!=''">
- and email like #{email}
- </if>
- <if test="gender!=null and gender!=''">
- and gender = #{gender} and
- </if>
- </trim>
- </select>
-
首先我们需要知道要拼接的字符串是什么 ,要拼接的字符串,也就是标签当中所有条件的拼接
- and id=#{id} and last_name like #{lastName} and email like #{email} and gender = #{gender} and
-
如果我们需要将这些这些条件带上,就需要去掉以上拼接字符串的第一个 and 前缀 和最后一个 and 后缀,同时也要带上 where
执行打印的sql
- select * from tbl_employee where id=? and last_name like ? and email like ? and gender = ?
-
更新的情况:
- <select id="UpdateByEmpTrim" parameterType="employee">
- update tbl_employee
-
- <trim prefix="set" suffix="where id = #{id}" suffixOverrides=",">
- <if test="lastName!=null and lastName!=''">
- last_name = #{lastName},
- </if>
- <if test="email!=null and email!=''">
- email = #{email},
- </if>
- <if test="gender!=null and gender!=''">
- gender = #{gender},
- </if>
- </trim>
- </select>
-
要拼接的字符串,也就是标签当中所有条件的拼接
- last_name = #{lastName},email = #{email},gender = #{gender},
-
我们要实现更新功能,就需要在拼接字符串的最前面加上一个set 和去掉拼接字符串最后一个后缀’,’ 然后加上where 查询条件
执行打印的sql
- update tbl_employee set last_name = ?, email = ?, gender = ? where id = ?
-