mybatis的常用标签 select、update、delete、where、choose、set、trim、bind

mybatis的标签

  • if标签
1. 用于where语句中,通过判断参数值来决定是否使用某个查询条件
2. 用于update语句中,判断某个字段是否更新
3. 在insert语句中,判断是否插入某个字段的值
  • 在where语句使用if标签

select

  <include refid="userSql" />
from sys_user

    <where>
      1=1

        <choose>
            <when test="id !=null">
                   and id=#{id}
            when>
            <when test="userName !=null and userName !=''">
                   and user_name =#{userName}
           when>
            <otherwise>
                    and 1=2
            otherwise>
        choose>
    where>
select>
  • where标签
1. 如果该标签包含的元素中有返回值,就插入一个where
2. 如果where后面的字符串是以AND或者OR 开头的,就剔除
  • set标签
- 如果该标签包含的元素中有返回值,就插入一个set
- 如果set后面的字符串是以逗号结尾的,就将这个逗号剔除
  • trim标签
- prefix:当trim元素包含内容时,会给内容增加prefix指定的前缀
- prefixOverrides:当trim元素包含内容时,会把内容中匹配的前缀字符串去掉
- suffix:当trim元素包含内容时,会给内容增加suffix指定的后缀
- suffixOverrides:当trim元素包含内容时,会给内容中匹配的后缀字符串去掉
  • where 和 set标签的功能都可以用trim标签来实现,并且在底层就是通过TrimSqlNode实现的 where标签对应的trim实现
<trim prefix="WHERE" prefixOverrrides="AND |OR ">

trim>
  • set标签对应的trim实现
<trim prefix="WHERE" prefixOverrrides=",">

trim>
  • bind标签
name 为绑定到上下文的变量名
value 为OGNL表达式
<if test="userName!=null and userName!=''">
    <bind name="userNameLike" value="'%'+userName+'%'"/>
    and user_name like #{userNameLike}
if>
  • _databaseId 判断数据库类型