mybatis动态sql之trim用法

目录

trim标签有四个属性

使用trim标签去除多余的and关键字 

使用trim标签结合case when实现批量更新

Demo1

Demo2


trim标签有四个属性

1.prefix,prefixOverrides,suffix,suffixOverrides
  • prefix:给sql语句拼接的前缀
  • suffix:给sql语句拼接的后缀
  • prefixOverrides:去除sql语句前面的关键字或者字符,该关键字或者字符由prefixOverrides属性指定,假设该属性指定为"AND",当sql语句的开头为"AND",trim标签将会去除该"AND"
  • suffixOverrides:去除sql语句后面的关键字或者字符,该关键字或者字符由suffixOverrides属性指定

使用trim标签去除多余的and关键字 

  • 如果这些条件没有一个能匹配上会发生什么?最终这条 SQL 会变成这样:
SELECT * FROM BLOG
WHERE
  • 这会导致查询失败。如果仅仅第二个条件匹配又会怎样?这条 SQL 最终会是这样:
SELECT * FROM BLOG
WHERE
AND title like ‘someTitle'
  • 使用 trim标签可以完成where标签相同的功能

	
	 state = #{state}
	 
	
	 AND title like #{title}
	
	
	 AND author_name like #{author.name}
	

使用trim标签结合case when实现批量更新

Demo1

@Update({
    
})

int updateUnMgntDevices(List UnMgntDevices);

Demo2

@Update({

UPDATE hr_emp_employee
        SET `on_job` = CASE
        WHEN `status` IN
        
         #{id}
         THEN 0
        ELSE 1
        END
        WHERE 1=1


})
    
void updateEmp(@Param("list") List list);

你可能感兴趣的:(mybatis,mybatis,sql,数据库)